Java入门2.2---面向对象的特征(继承性)
一、继承
1.子类继承父类以后,父类中声明的属性、方法,子类可以获取到。
明确:当父类中有私有的属性或方法时,子类同样可以获取得到,只是由于封装性的设计,使得子类不可以直接调用罢了。
子类除了通过继承,获取父类的结构之外,还可以定义自己的特有的成分。
extends:子类是对父类功能的“扩展”,明确子类不是父类的子集。
2.java中的继承性只支持单继承,一个类只能继承一个父类。反之,一个父类可以有多高子类。
3.子父类是相对的概念。
二、方法的重写(override)
1.前提:有子类继承父类
2.子类继承父类以后,若父类的方法对子类不适用那么子类可以对父类的方法重写(override或overwrite)。
3.重写的规则
- 要求子类方法的“返回值类型 方法名 (参数列表)”与父类的方法一样;
- 子类方法的修饰符不能小于父类方法的修饰符;
- 若父类方法抛异常,那么子类方法抛的异常类型不能大于父类的。
- 子父类的方法必须同为static或同为非static的。
4.方法的重载和重写的区别?
- 重载:
- “两同一不同”,同一个类中,同一个方法名,不同的参数列表。注:方法的重载与方法的返回值无关。
- 构造器是可以重载的
- 重写:前提是在继承的基础之上,子类在获取了父类的结构之后,可以对父类中同名的方法进行“重构”
- 方法的返回值、方法名、形参列表相同;
- 权限修饰符不小于父类的同名方法;
- 子类方法的异常类型不大于父类的;
- 两个方法要同为static或同为非static。
三、四种访问权限修饰符
Java权限修饰符public、protected、private置于类的成员定义前,用来限定对象对该类对象成员的访问权限。
| 修饰符 | 类内部 | 同一个包 | 子类 | 任何地方 |
| private | √ | |||
| default | √ | √ | ||
| protected | √ | √ | √ | |
| public | √ | √ | √ | √ |
对于class的权限修饰只可以用public和default
- public类可以在任意地方被访问;
- default类只可以被同一个包内部的类访问。
四、关键字super
super:可以用来修饰属性、方法、构造器。
super的追溯不限于直接父类。
super和this的用法很像,this代表本类对象的引用,super代表父类的内存空间的标识。
(1)属性
当子类与父类中有同名的属性时,可以通过“super.此属性”显式的调用父类中声明的属性。若想调用子类的同名的属性"this.此属性"。
(2)方法
当子类重写父类的方法以后,在子类中若想再显式的调用父类的被重写的方法,就需要使用“super.方法”
(3)构造器
super修饰构造器,通过在子类中使用“super(形参列表)”来显示的调用父类中指定的构造器。
- 在构造器内部,“super(形参列表)”必须要声明在首行!!!
- 在构造器内部:“this(形参列表)”或“super(形参列表)”只能出现一个!!!
- 在构造器中,不显示的调用“this(形参列表)”或“super(形参列表)”其中任何一个,默认调用的是父类空参的构造器!!!
建议:设计一个类时,尽量要提供一个空参的构造器!!!
五、子类对象实例化过程


浙公网安备 33010602011771号