收藏 分享(赏)

面向对象(高级 1).ppt

上传人:j35w19 文档编号:8709584 上传时间:2019-07-08 格式:PPT 页数:55 大小:967.50KB
下载 相关 举报
面向对象(高级 1).ppt_第1页
第1页 / 共55页
面向对象(高级 1).ppt_第2页
第2页 / 共55页
面向对象(高级 1).ppt_第3页
第3页 / 共55页
面向对象(高级 1).ppt_第4页
第4页 / 共55页
面向对象(高级 1).ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

1、JAVA 语言程序设计,第6章:面向对象(高级) 继承的基本实现,6402332 王联根,目标,掌握继承的基本概念及实现 掌握继承实现的各种限制,为什么要有继承?,类的继承格式,在Java中使用extends关键字完成类的继承关系,操作格式: class 父类 / 定义父类 class 子类 extends 父类 / 使用extends关键字实现继承,继承的实现,通过子类扩展父类的功能,Person与Student的继承关系图,继承的限制,在Java中只允许单继承,不能使用多重继承,即:一个子类只能继承一个父类。但是允许进行多层继承,即:一个子类可以有一个父类,一个父类还可以有一个父类。,多重

2、继承,多层继承,继承的类图表示,访问限制,在使用继承的时候也应注意的是:子类是不能直接访问父类中的私有成员和私有方法,但是可以调用父类中的非私有方法。,子类访问限制,下一知识点,继承的进一步研究,JAVA 语言程序设计,第6章:面向对象(高级) 继承进阶,6402332 王联根,目标,掌握子类对象的实例化过程 掌握方法覆写的概念及实现 掌握super关键字的作用,子类对象实例化过程,在继承的操作中,对于子类对象的实例化也是有要求的:“子类对象在实例化之前必须首先调用父类中的构造方法之后再调用子类自己的构造方法”。,观察子类对象的实例化过程,隐含的语句,对于以上的代码实际在子类的构造方法中隐含了

3、一个super()的语法,方法的覆写,在继承的关系中也存在着方法覆写的概念,所谓的方法覆写就是指子类定义了与父类中同名的方法,但是在方法覆写时必须考虑到权限,即:被子类覆写的方法不能拥有比父类方法更加严格的访问权限。 已学习过的三种访问权限: 关于访问权限,实际上前几章读者已经见过三种访问权限了:private、default、public,这三种访问权限的具体作用本书后面会有介绍,读者现在只需要记住大小关系即可:private default public。 所以,如果在父类中使用public定义的方法,子类的访问权限必须是public,否则程序会无法编译。,方法的覆写,错误的方法覆写,如果

4、现在被子类覆写的方法权限缩小的话,则在编译时将出现错误提示。,调用父类中被子类覆写过的方法,在子类中可以使用“super.方法()”的形式,从子类访问父类中的方法。,思考?,如果现在将父类的一个方法定义成private访问权限,在子类中将此方法声明为default访问权限,那么这样还叫做覆写吗?,属性的覆盖,在继承中除了方法可以覆写之外,属性也可以覆盖,所谓的属性覆盖就是指子类声明了与父类同名的属性。,方法的重载与覆写的区别,super关键字的作用,使用super可以从子类中调用父类中的构造方法、普通方法、属性。,使用super调用父类中的指定构造方法,this与super的区别,下一知识点,

5、final关键字,JAVA 语言程序设计,第6章:面向对象(高级) final关键字,6402332 王联根,目标,掌握final关键字的使用要求 掌握全局常量的声明,final关键字,final在java中表示的意思是最终的意思。也可以称为完结器。 可以使用final关键字声明类、属性、方法: 使用final声明的类不能有子类; 使用final声明的方法不能被子类所覆写; 使用final声明的变量即成为常量,常量不可以修改 。,使用final修饰的类不能有子类,使用final修饰的方法不能被子类覆写,被final修饰的变量即成为常量,全局常量,使用static final关键字联合声明的变量

6、称为全局常量: public static final String INFO = “RJXY“ ;,下一知识点,抽象类的基本概念,JAVA 语言程序设计,第6章:面向对象(高级) 抽象类的基本概念,6402332 王联根,目标,掌握抽象类的定义格式 掌握抽象类的使用规则,抽象类的定义及使用规则,包含一个抽象方法的类必须是抽象类; 抽象类和抽象方法都要使用abstract关键字声明; 抽象方法只需声明而不需要实现; 抽象类必须被子继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方法。,抽象类的定义格式,定义一个抽象类,继承抽象类,抽象类的图形表示,抽象类的思考,问题1:一个抽象类可以使用

7、final关键字声明吗? 问题2:一个抽象类中可以定义构造方法吗?,回答,问题一: 一个类如果使用了final关键字声明,则此类不能被子类继承,而抽象类又必须被子类覆写,所以很明显,第一个问题的答案是:“一个抽象类不能使用final关键字声明”。 问题二: 实际上在一个抽象类中是允许存在构造方法的,因为抽象类依然使用的是类的继承关系,而且抽象类中也存在各个属性,所以子类在实例化之前肯定是先要对父类进行实例化的。,在抽象类中定义构造方法,调用抽象类中指定参数的构造方法,下一知识点,内部类,JAVA 语言程序设计,第6章:面向对象(高级) 内部类,6402332 王联根,目标,掌握内部类的优缺点

8、掌握内部类的使用格式 掌握static声明内部类的作用 可以使用内部类访问方法中的参数,内部类,在类内部也可以定义另一个类。如果在类Outer的内部再定义一个类Inner,此时类Inner就称为内部类,而类Outer则称为外部类。 内部类可声明成public或private。当内部类声明成public或private时,对其访问的限制与成员变量和成员方法完全相同。 内部类的定义格式 标识符 class 外部类的名称/ 外部类的成员标识符 class 内部类的名称 / 内部类的成员,使用static定义内部类,用static可以声明属性或方法,而用static也可以声明内部类,用static声明的内部类则变成外部类,但是用static声明的内部类不能访问非static的外部类属性。,在外部访问内部类,一个内部类除了可以通过外部类访问。也可以直接在其他类中进行调用,调用的基本格式为: 外部类.内部类 内部类对象 = 外部类实例.new 内部类() ;,在方法中定义内部类,也可以在方法中定义一个内部类,但是在方法中定义的内部类是不能直接访问方法中的参数的,如果方法中的参数要想被内部类所访问,则参数前必须加上final关键字。,下一章内容,面向对象(高级 2),

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

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

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


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

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

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