- 0
- 0
- 约1.76万字
- 约 57页
- 2018-04-22 发布于江西
- 举报
[IT认证]第5章面向对象编程基础_2.ppt
5.5 类的继承与多态 5.5.1 类的继承 1.继承 继承是面向对象程序设计的主要特征之一。从一个已经存在的类(基类或父类)中获得公有数据成员和方法成员,从而创建新的类(派生类或子类)。派生类可以在继承父类公有成员的基础上增加一些变量和方法。派生类也可以覆盖被继承的方法并重写此方法。通过继承实现代码的共享,可以提高开发效率,并有助于减少错误。 从基类(也叫父类)继承一个新的子类(也叫派生类)的语句格式: class 派生类名:基类名 { //派生类代码 } 新的类可以从现有类库中继承。 基类的私有成员只能被基类的方法访问,而不能被它所派生的子类的方法访问。 在建立子类的实例时,先调用基类的构造函数来初始化派生类对象中的基类成员,接着执行派生类成员对象的构造函数,最后调用派生类构造函数。 派生类的对象可以作为基类的对象处理,即派生类对象可以访问基类的公有成员,也允许将派生类对象赋值给基类对象。 【例5-15】 继承示例。最好单步运行,可以清楚查看创建子类对象时,调用基类构造函数和子类构造函数的顺序。运行结果如图5.11所示 public class Jilei //基类 { public Jilei() //基类构造函数 { Console.WriteLine(基类构造函数); } public void MethodJ() //基类中的方法 { Console.WriteLine(调用MethodJ()); } } public class Zilei:Jilei //派生类Zilei,其父类为Jilei { public Zilei() //派生类的构造函数 { Console.WriteLine(子类构造函数); } public void MethodZ() //派生类中的方法 { Console.WriteLine(调用MethodZ() ); } } class Test { static void Main(string[] args) { Jilei J1 = new Jilei(); //定义一个基类实例 J1.MethodJ(); //对象J1调用基类中的方法 Zilei Z1 = new Zilei(); //定义一派生类实例,先调用基类构造函数,再调用子类构造函数 Z1.MethodZ(); //子类的对象Z1调用子类中的方法MethodZ Z1.MethodJ(); //子类的对象Z1调用基类中的方法MethodJ Jilei JJ = (Jilei)Z1; //定义基类对象JJ,地址指向Z1,对Z1进行强制类型转换 JJ.MethodJ(); //基类对象调用基类中的方法MethodJ //JJ.MethodZ(); //该句是错的,基类的对象不能调用子类的方法 Zilei ZZ = (Zilei)JJ; ZZ.MethodZ(); //子类对象调用基类的方法 ZZ.MethodJ(); //子类对象调用子类中的方法 Console.Read (); } } 2.访问关键字this和base this关键字引用类的当前实例。this关键字只能在实例构造函数、实例方法、实例访问器中使用。 base关键字用于派生类中访问基类的成员。base关键字只能在实例构造函数、实例方法、实例访问器中使用。 【例5-16】 访问关键字this示例。运行结果如图5.12所示, public class Shape //基类 { protected string Color; //基类中的私有字段 public Shape() //无参构造函数 { ;} public Shape(string Color) //有参构造函数 { this.Color = Color; }//this关键字引用类的当前实例,等号右边的Color是形参 public string G
原创力文档

文档评论(0)