面向对象编程(继承)_第1页
面向对象编程(继承)_第2页
面向对象编程(继承)_第3页
面向对象编程(继承)_第4页
面向对象编程(继承)_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象编程(类继承)本章学习指引:类继承Java的继承域和方法的继承和隐藏Super关键字子类的构造方法一、类继承继承是面向对象的程序设计三大特点之一类继承体现了类与类之间的一种特殊和一般的关系,是实现类代码重用和数据共享的重要机制,是实现软件复用的一个有效手段。二、Java的继承每一个类都是从其它类派生而来的每一个类都是从其它类派生而来的(也即每一个也即每一个类都有父类类都有父类) 通过通过extends关键字来实现的关键字来实现的每一个类都默认的继承每一个类都默认的继承Object类类(当一个类没有显示的继承关系时,表明该类默认的继承Object类)。1.Java只允许继承一个类(也即一

2、个子类只有一个父只允许继承一个类(也即一个子类只有一个父类),不允许多重继承类),不允许多重继承超类(父类):被扩展(被继承)的类超类(父类):被扩展(被继承)的类子类:继承了超类所有非私有的数据和操作子类:继承了超类所有非私有的数据和操作的类的类继承关系:一个类继承关系:一个类(子类子类)拥有另一个类拥有另一个类(超类超类)的所有非私有的数据的所有非私有的数据(成员变量成员变量)和操作和操作(成员成员方法方法)举例:举例: 子类和父类的继承关系运行下列程序,观察其输出结果:class Father int i=5; protected static void f() private int

3、j; private void ff()class Son extends Father void s() public static void main(Stringargs) Son son=new Son(); son.s(); son.f();结论:同一包中,被继承的类可以是默认级别、public级别的;被继承的属性和方法可以是默认级别的、public级别的、protected级别的。不同包中,被继承的类必须是public级别的;被继承的属性和方法可以是public级别的、protected级别的。三、域和方法的继承和隐藏域的继承和隐藏域的继承 前面已讲解过(同一包、不同包)域的隐藏

4、子类重新定义一个从父类那里继承来的域变量完全相同的变量,即称为“域的隐藏”。 例:域的隐藏class MobileTelephone String cloth=银灰色;class NewMobileTelephone extends MobileTelephone String cloth=“牙白色”;/cloth域的隐藏 public static void main(Stringargs) NewMobileTelephone nmt=new NewMobileTelephone(); 2. 方法的继承和覆盖方法的继承 前面已讲解过(同一包、不同包)方法的覆盖 子类重新定义一个从父类那里继

5、承来的方法,即称为“方法的覆盖 ”。子类定义的方法与父类中的方法具有相同的定义形式,即具有相同的方法名、参数形式。 例:方法的覆盖class MobileTelephone String cloth=银灰色; void takePhoto()class NewMobileTelephone extends MobileTelephone String cloth=牙白色;/cloth域的隐藏 void takePhoto() /覆盖父类同名的方法 public static void main(Stringargs) NewMobileTelephone nmt=new NewMobileTe

6、lephone(); nmt.takePhoto(); 3. super关键字用于指代父类对象使用方法: super.方法名-访问父类中的成员方法 super.变量名-访问父类中的成员变量 super(参数列表) -访问父类中的构造方法 例:子类访问父类中被隐藏的域变量和被覆盖的方法class MobileTelephone protected String cloth=银灰色; protected void displayScreen()class NewMobileTelephone extends MobileTelephone String cloth=牙白色; /域(属性)的隐藏 p

7、rotected void displayScreen() /方法覆盖 void oldTelephone()super.cloth); super.displayScreen(); public static void main(Stringargs) NewMobileTelephone nmt=new NewMobileTelephone(); nmt.displayScreen(); nmt.oldTelephone(); 四、子类的构造方法子类除继承父类中非私有的成员方法和成员变量,还继承父类的构造函数。 1.子类继承父类不含参数的构造方法class ConstructDemo ConstructDemo() (“我是父类中无参的构造函数!); int i;class MyDemo extends ConstructDemo MyDemo(int j) super();/默认插入 public static void main(Stringargs) MyDemo md=new MyDemo(2); 2.子类继承父类带参数的构造方法super关键字调用父类中有参的构造函数class ConstructDemo int i; ConstructDemo(int k)class MyDe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论