资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第九章继承目标q继承的类型q继承的实现q修饰符q接口继承体验程序运行时实现老虎、鹰、鲨鱼三个对象,分别调用它们的一个方法。 继承 3-1Class Base / 成员变量 int basevar; / 成员函数 Base_fun1() / 定义 . .Class Derived : Base / 成员变量 int derivedvars; / 成员函数 Derived_fun1() / 定义 . .基类 void main() Derived objdr = new Derived() ; objdr.Base_fun1();派生类继承而来狗猪继承 3-2动物基类派生类继承的层次结构示例继承3-3Class Animal / 成员变量 int eyes, nose; Animal() eyes = 2; nose = 1; Pet_Animal() / 定义 基类Class Dog : Animal / 成员变量 / 成员函数 private Barking() / 定义 private Wagging_Tail() 派生类继承 C# 中的类 public class Graduate: Student, Employee / 成员变量成员变量 / 成员函数成员函数 多重继承? 允许多重接口实现不能多重继承q用于从派生类中访问基类成员 q可以使用 base 关键字调用基类的构造函数 关键字 base调用 base 构造函数 public class Teacher:Person private uint id; /调用 Teacher构造函数 public Teacher(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); public 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);关键字 overrideClass Derived : Base / 成员变量成员变量 int derivedvars; / 成员函数成员函数 override Func1() / 定义定义 . .基类派生类Class Base / 成员变量 int basevar; / 成员函数 Func1() / 定义 . .关键字 virtual Access modifier virtual return type name( parameters-list ) . / Virtual 方法实现 .public virtual void Func() Console.WriteLine(“这是 virtual 方法,可以在派生类中被重写);抽象类和抽象方法 2-12-1 abstract class ClassOne /类实现不能实例化不能实例化派生类的基类派生类的基类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 IPictBase void ApplyBeta();/第二个接口第二个接口public interface IPictint 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()/新功能实现新功能实现总结q继承的类型q继承的实现q修饰符q接口继承
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号