继承 extends, super this,方法重写
extends 扩展 子类(派生类)是父类的扩展
java中只有单继承,无多继承,即一个子类只能有一个父类,一个父类可拥有多个子类。
public class 子类名 extends 父类名 {}
功能:在子类的代码中,可以使用父类中的(public)方法
鼠标点在类里,按下ctrl+h,会出现继承关系。、、、、、、、、、、、、
在java中,所有的类,都默认直接或间接继承object类,在平时可以忽略掉extends object
ex:pu鼠标点在blic class student{} == public class student extends object{}
////////////////////
super(); //隐藏代码:调用父类的构造器; 会先执行父类,在执行子类。
1.调用父类的构造器,必须要在子类构造器的第一行 。
2.必须只能出现在子类的方法或者构造方法中。
3.super和this无法同时调用构造方法,因为都在第一行。
supe VS this
| super | this | |
| 代表对象 | 代表父类对象的应用 | 本身调用者的对象 |
| 前提 | 只能在继承条件中用 | 没有继承也能用 |
| 构造方法 | 父类的构造 | 本类的构造 |
///////////
方法重写
重写和方法有关,与属性无关
重写:需要有继承关系,子类重写父类的方法 方法名一样,方法体不同 Alt +Insert: overside;
1.方法名相同
2.参数列表相同
3.修饰符:范围可以扩大:小 private Defalut Protected public 大,不能缩小
4.抛出的异常:范围可以被缩小,不能被扩大 ClassNotFoundException ---> Exception(大) ???
- 重写的方法不能比被重写的方法有更严格的访问权限。
- 重写的方法不能比被重写的方法产生更多的异常
不能重写的方法
1.static 方法, 属于类,不属于实例
2.final 常量
3.prviate 方法
为什么要重写?
父类的功能,子类不一定需要或者不一定满足