收藏 分享(赏)

Java程序设计精编教程第6章_子类与继承.ppt

上传人:hwpkd79526 文档编号:8315628 上传时间:2019-06-20 格式:PPT 页数:23 大小:185.50KB
下载 相关 举报
Java程序设计精编教程第6章_子类与继承.ppt_第1页
第1页 / 共23页
Java程序设计精编教程第6章_子类与继承.ppt_第2页
第2页 / 共23页
Java程序设计精编教程第6章_子类与继承.ppt_第3页
第3页 / 共23页
Java程序设计精编教程第6章_子类与继承.ppt_第4页
第4页 / 共23页
Java程序设计精编教程第6章_子类与继承.ppt_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、2010-8-1,1,Java程序设计精编教程 第6章,配合例子源代码一起使用,Power point 制作:耿祥义 张跃平,子类与继承,2010-8-1,2,导读,主要内容 子类与父类 子类的继承性 成员变量的隐藏和方法重写 super关键字 final关键字 对象的上转型对象 继承与多态 abstract类与abstract方法 面向抽象编程开-闭原则,2010-8-1,3,6.1 子类与父类,利用继承,可以先编写一个共有属性的一般类,根据该一般类再编写具有特殊属性的新类,新类继承一般类的状态和行为,并根据需要增加它自己的新的状态和行为。由继承而得到的类称为子类,被继承的类称为父类(超类)

2、。声明一个类的子类的格式如下:class 子类名 extends 父类名 ,2010-8-1,4,6.2 子类的继承性,所谓子类继承父类的成员变量作为自己的一个成员变量,就好象它们是在子类中直接声明一样,可以被子类中自己定义的任何实例方法操作。 所谓子类继承父类的方法作为子类中的一个方法,就象它们是在子类中直接定义了一样,可以被子类中自己定义的任何实例方法调用。,2010-8-1,5,6.2.1 子类和父类在同一包中的继承性,如果子类和父类在同一个包中,那么,子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法,

3、继承的成员变量或方法的访问权限保持不变。例1,2010-8-1,6,6.2.2 子类和父类不在同一包中的继承性,如果子类和父类不在同一个包中,那么,子类继承了父类的protected、public成员变量做为子类的成员变量,并且继承了父类的protected、public方法为子类的方法,继承的成员或方法的访问权限保持不变。,2010-8-1,7,类成员的访问控制,2010-8-1,8,6.2.3 继承关系(Generalization)的UML图,如果一个类是另一个类的子类,那么UML通过使用一个实线连接两个类的UML图来表示二者之间的继承关系,实线的起始端是子类的UML图,终点端是父类的U

4、ML图,但终点端使用一个空心的三角形表示实线的结束。,2010-8-1,9,6.3 成员变量的隐藏和方法重写6.3.1 成员变量的隐藏,对于子类可以从父类继承的成员变量,只要子类中声明的成员变量和父类中的成员变量同名时,子类就隐藏了从父类中继承的成员变量,子类自己声明定义的方法操作与父类同名的成员变量是指子类重新声明定义的这个成员变量。例5-3,2010-8-1,10,6.3.2 方法重写(Override),子类通过重写可以隐藏已继承的实例方法。 1重写的语法规则如果子类可以继承父类的某个实例方法,那么子类就有权利重写这个方法。方法重写是指:子类中定义一个方法,这个方法的类型和父类的方法的类

5、型一致或者是父类的方法的类型的子类型,并且这个方法的名字、参数个数、参数的类型和父类的方法完全相同。 2重写的目的子类通过方法的重写可以覆盖继承的方法,子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为。 例2,3,2010-8-1,11,6.4 super关键字,子类可以隐藏从父类继承的成员变量和方法,如果在子类中想使用被子类隐藏的成员变量或方法就可以使用关键字super。,2010-8-1,12,6.4.1 使用super操作被隐藏的成员变量和方法,在子类中想使用被子类隐藏的成员变量或方法就可以使用关键字super。比如super.x、super.play()就是访问和调用被子

6、类隐藏的成员变量x和方法play()。例4,2010-8-1,13,6.4.2 使用super调用父类的构造方法,子类不继承父类的构造方法,因此,子类如果想使用父类的构造方法,必须在子类的构造方法中使用,并且必须使用关键字super来表示,而且super必须是子类构造方法中的头一条语句。例5,2010-8-1,14,6.5 final关键字,final关键字可以修饰类、成员变量和方法中的局部变量。,2010-8-1,15,6.5.1 final类,可以使用final将类声明为final类。final类不能被继承,即不能有子类。如: final class A ,2010-8-1,16,6.5.

7、2 final方法,如果用final修饰父类中的一个方法,那么这个方法不允许子类重写。,2010-8-1,17,6.5.3 常量,如果成员变量或局部变量被修饰为final的,就是常量。例6,2010-8-1,18,6.6 对象的上转型对象,假设,A类是B类的父类,当用子类创建一个对象,并把这个对象的引用放到父类的对象中时,比如:,A a; a=new B(); 或 A a; B b=new B(); a=b;,这时,称对象a是对象b的上转型对象。例7,2010-8-1,19,6.7 继承与多态,多态性就是指父类的某个方法被其子类重写时,可以各自产生自己的功能行为。 例8,2010-8-1,20

8、,6.8 abstract类和abstract()方法,用关键字abstract修饰的类称为abstract类(抽象类)。如: abstract class A 用关键字abstract修饰的方法称为abstract方法(抽象方法),例如: abstract int min(int x,int y); 注意: 1abstract类中可以有abstract方法 2abstract类不能用new运算创建对象 例9,2010-8-1,21,6.9 面向抽象编程,在设计一个程序时,可以通过在abstract类中声明若干个abstract方法,表明这些方法在整个系统设计中的重要性,方法体的内容细节由它的

9、非abstract子类去完成。 使用多态进行程序设计的核心技术之一是使用上转型对象,即将abstract类声明对象作为其子类的上转型对象,那么这个上转型对象就可以调用子类重写的方法。 所谓面向抽象编程,是指当设计某种重要的类时,不让该类面向具体的类,而是面向抽象类,即所设计类中的重要数据是抽象类声明的对象,而不是具体类声明的对象。,2010-8-1,22,6.10 开-闭原则,所谓“开-闭原则”(Open-Closed Principle)就是让设计的系统应当对扩展开放,对修改关闭。 在设计系统时,应当首先考虑到用户需求的变化,将应对用户变化的部分设计为对扩展开放,而设计的核心部分是经过精心考虑之后确定下来的基本结构,这部分应当是对修改关闭的,即不能因为用户的需求变化而再发生变化,因为这部分不是用来应对需求变化的。如果系统的设计遵守了“开-闭原则”,那么这个系统一定是易维护的,因为在系统中增加新的模块时,不必去修改系统中的核心模块。,2010-8-1,23,结合 6.9 说明开-闭原则,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报