第六章 面向对象(高级篇)
Posted 陌尘枫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第六章 面向对象(高级篇)相关的知识,希望对你有一定的参考价值。
6.1、继承的基本概念
a、Java中只允许多层继承,不允许多重继承。使用extends可以实现继承的关系。
b、使用继承时应该注意:子类是不能直接访问父类的私有成员的,子类可以调用父类中的非私有方法,但是不能直接调用父类中的私有成员。
6.2、继承的进一步研究
a、子类可以直接使用super()调用父类(超类)中的无参构造。
b、在继承关系中也存在着方法 覆写的概念,所谓方法的覆写就是指子类定义了与父类中同名的方法,但是在方法覆写时必须考虑到权限,即被子类覆写的方法不能拥有比父类方法更加严格的访问权限。
c、如果将父类中的一个方法定义为private访问权限,在子类中将此方法声明为default访问权限,这样不是覆写,只是相当于重新定义了一个新方法。
序号 | 区别点 | 重载 | 覆写 |
1 | 单词 | Overloading | Overriding |
2 | 定义 | 方法名称相同,参数的类型或个数不同 | 方法的名称、参数的类型、返回值类型全部相同 |
3 | 对权限没有要求 | 被覆写的方法不能用于更严格的权限 | |
4 | 范围 | 发生在一个类中 | 发生在继承类中 |
d、与this调用构造方法的要求一样,super语句必须放在子类构造方法的首行。
序号 | 区别点 | this | super |
1 | 属性访问 | 访问本类中的属性,如果本类中没有此属性,则从父类中继续查找 | 访问父类中的属性 |
2 | 方法 | 访问本类中的方法,如果本类中没有此方法,则从父类中继续查找 | 直接访问父类中的方法 |
3 | 调用构造 | 调用本类构造,必须放在构造方法首行 | 调用父类构造,必须放在子类构造方法的首行 |
4 | 特殊 | 表示当前对象 | 无此概念 |
e、this和super都可以调用构造方法,两者不可以同时出现,因为两者调用构造时都必须放在构造方法的首行,另外,无论子类如何操作,最终必须要首先调用父类的构造方法。
6.4、final关键字
a、使用final声明的类不能有子类
b、使用final声明的方法不能被子类覆写
c、使用final声明的变量即成为常量,常量不可以修改。
d、在使用final声明变量时,要求全部的字母大写,如INFO,这点在开发中是十分重要的。
e、如果一个程序中的变量使用public static final声明,则此变量将称为全局变量。
6.5、抽象类的基本概念
a、抽象类的定义和使用规则
(1)包含一个抽象方法的类必须是抽象类
(2)抽象类和抽象方法都要使用abstract关键字声明
(3)抽象方法只需声明而不需要实现
(4)抽象类必须被子继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方法。
b、一个抽象类中是允许存在构造方法的,因为抽象类依然使用的是类的继承关系,而且抽象类中也存在各个属性,所以子类在实例化之前必须先要对父类进行实例化。
6.6、接口的基本概念
以上是关于第六章 面向对象(高级篇)的主要内容,如果未能解决你的问题,请参考以下文章