《第9章继承抽象类教程文件》由会员分享,可在线阅读,更多相关《第9章继承抽象类教程文件(17页珍藏版)》请在金锄头文库上搜索。
1、第九章,继承,目标,继承的类型 继承的实现 修饰符 接口继承,体验,程序运行时实现老虎、鹰、鲨鱼三个对象,分别调用它们的一个方法。,继承 3-1,Class Base / 成员变量 int basevar; / 成员函数 Base_fun1() / 定义 . .,基类,void main() Derived objdr = new Derived() ; objdr.Base_fun1(); ,派生类,继承3-3,Class Animal / 成员变量 int eyes, nose; Animal() eyes = 2; nose = 1; Pet_Animal() / 定义 ,基类,Clas
2、s Dog : Animal / 成员变量 / 成员函数 private Barking() / 定义 private Wagging_Tail() ,派生类,继承 C# 中的类,public class Graduate: Student, Employee / 成员变量 / 成员函数 ,多重继承?,允许多重接口实现,不能多重继承,用于从派生类中访问基类成员 可以使用 base 关键字调用基类的构造函数,关键字 base,调用 base 构造函数,public class Teacher:Person private uint id; /调用 Teacher构造函数 public Teach
3、er(string name,uint age,uint id):base(name,age) this.id = id; Console.WriteLine(id); ,:base 关键字将调用 Person 类构造函数,示例,public class Person public string _name; public uint _age; public Person(string name, uint age) this._name = name; this._age = age; Console.WriteLine(_name); Console.WriteLine(_age); ,p
4、ublic class Teacher:Person private uint _id; public Teacher(string name, uint age, uint id):base(name, age) this._id = id; Console.WriteLine(_id); ,static void Main(string args) /构造 Student Teacher objt= new Teacher(“张三, 32, 003); ,关键字 override,Class Derived : Base / 成员变量 int derivedvars; / 成员函数 ove
5、rride Func1() / 定义 . .,基类,派生类,Class Base / 成员变量 int basevar; / 成员函数 Func1() / 定义 . .,关键字 virtual,Access modifier virtual return type name( parameters-list ) . / Virtual 方法实现 . ,public virtual void Func() Console.WriteLine(“这是 virtual 方法,可以在派生类中被重写); ,抽象类和抽象方法 2-1,abstract class ClassOne /类实现 ,不能实例化
6、派生类的基类,abstract class Base / 成员变量 int basevar; / 成员函数 abstract void base_fun1(parameters); / 无法实现 . ,class Derived : Base / 成员变量 int derivedvars; / 成员函数 override void Base_fun1(parameters) / 实际实现 . ,抽象类,派生类,抽象类和抽象方法 2-2,多重接口实现,C# 不允许多重类继承 但 C# 允许多重接口实现 这意味着一个类可以实现多个接口,多重接口示例,public interface IPictBa
7、se void ApplyBeta(); /第二个接口 public interface IPict int DeleteImage(); void DisplayImage(); public class BaseIO public void Open() Console.WriteLine(“BaseIO 的 Open 方法); ,static void Main(string args) MyImages objM = new MyImages(); objM.DisplayImage(); objM.DeleteImage(); objM.Open(); objM. ApplyBeta(); ,public class MyImages:BaseIO,IPictBase,IPict public void ApplyBeta() /功能实现 public int DeleteImage()/功能实现代码 public void DisplayImage ()/功能实现代码 public new void Open()/新功能实现 ,总结,继承的类型 继承的实现 修饰符 接口继承,