文档详情

第4章 面向对象编程方法.ppt

发布:2020-01-08约5.24千字共30页下载文档
文本预览下载声明
本讲小结 类的继承 定义派生类 密封类 应用软件开发(C#) 第4章 面向对象编程方法 应用软件开发(C#) 第1章 C#程序设计基础 第4章 面向对象编程方法 王德俊 上海交通大学继续教育学院 第4章 面向对象编程方法 4.1一个简单的程序 4.2 类和对象 4.3 类的继承、重载与多态 4.4 运算符的重载 4.5 接口及其实现 4.6 方法的委托 4.7 常用的几个类 4.8 命名空间 4.3 类的继承、重载与多态 4.3.1 继承 4.3.2 重载 4.3.3 多态 4.3.1 继承 1 类的继承 2 定义派生类 3 密封类 继承是面向对象编程的又一重要特征 继承基于这样的编程思想: 既可以在程序设计中最大限度利用已有的设计成果,又可以在此基础上使程序设计具有高度的灵活性,使已有的程序设计成果具有可扩充性 继承使得不同的类之间可以共享特性和操作,从而高效地重用代码,提高程序设计的效率 1 类的继承 类的继承性是指一个类定义既可以具有其他类的数据成员、属性成员、方法成员等,也可以使其他类具有自己的数据成员、属性成员、方法成员等 在类的继承中 被继承的类叫基类或父类 继承的类叫派生类或子类 基类与派生类 当一个类从另一个类派生出来时 派生类就自然具有了基类数据成员、属性成员和方法成员等, 基类定义中这些成员的代码,已不需要在派生类定义中重写, 在派生类的定义中,只需书写基类定义中所不具有的代码即可 在C#中,类的继承遵循以下规则: ① 派生类只能继承于一个基类 ② 派生类自然继承基类的成员,但不能继承基类的构造函数成员 ③ 类的继承可以传递。C#中,Object类是所有类的基类,也就是说,所有的类都具有Object类的成员 ④ 派生类是对基类的扩展,派生类定义中可以声明新的成员,但不能消除已继承的基类成员 ⑤ 基类中的成员声明时,不管其是什么访问控制方式,总能被派生类继承,访问控制方式的不同只决定派生类成员是否能够访问基类成员 ⑥ 派生类定义中如果声明了与基类同名的成员,则基类的同名成员将被覆盖,从而使派生类不能直接访问同名的基类成员 ⑦ 基类可以定义虚方法成员等,这样派生类能够重载这些成员以表现类的多态性 2 定义派生类 (1) 派生类定义格式 (2)创建派生类对象 (3) protected访问修饰符的作用 (4) 构造函数的调用 (5) 向基类构造函数传递参数 定义派生类 在.NET类库中,有许多类可以作为基类,这些基类可以被其他类继承,以产生派生类 (1) 派生类定义格式 派生类定义的语法格式通常为: public class 派生类名称 : 基类名称 {类体} public是访问控制修饰符 访问控制修饰符可以是public、protected和private 通常都使用public以保证类的开放性 public可以省略,因为类定义的访问控制默认为public “: 基类名称”表示所继承的类 以定义Student(学生)类为例 进行类定义时,可以将公共性的内容放在基类中,将特殊性的内容放在派生类中 基类定义如下: public class Student { public string id; public string name; public string sex; public byte age; public string Show ( ) { return 学号:+id+ 姓名:+name+\n性别: +sex+ 年龄:+age; } } 派生类定义如下: public class Student_1: Student { public byte score1,score2; public uint Total ( ) { return (uint) score1+(uint) score2; } public float Average ( ) { return (float) (score1+score2)/2; } } (2) 创建派生类对象 基类与派生类定义完成后,用派生类声明的对象,将包含基类的成员(除了构造函数和析构函数) 派生类对象可以直接访问基类中可访问的成员 [例InheritFromStudent] 创建Windows应用程序 在程序中定义基类Student与派生类Student_1 单击“创建”按钮,创建并显示派生类对象的信息 private void button1_Click(object sender, System.EventArgs e) { Student_1
显示全部
相似文档