继承 (extend):你继承谁你就是谁,继承是一种严格的父子关系(在父类里面抽取的属性和方法一定是所有子类所共有)
(Student继承Person,那么Student就是人)
super 在子类构造方法中调用,代表父类中的构造方法
父类中的变量用protect 修饰,子类可以访问
访问修饰符
|
类内部
|
本包
|
子类
|
外部包
|
public
|
1
|
1
|
1
|
1
|
protected
|
1
|
1
|
1
|
0
|
default
|
1
|
1
|
0
|
0
|
private
|
1
|
0
|
0
|
0
|
方法的重载: overload
在同一个类里面,允许存在一个以上同名方法,只要他们参数类型和参数个数不同即可。
构造方法重载(无参构造方法、有参构造方法)
方法重载特点:与返回值无关,只看参数列表。
void show(int a, char b, double c){}
1、void show(int x, char y, double z){} 不是重载,是同一个方法
2、int show(int a, double c, char b){} 是重载,参数顺序不一样,和返回值无关
3、void show(int a, double c, char b){} 是重载,参数顺序不一样
4、boolean show(int c, char b){} 是重载
5、void show(double c){ } 是重载
6、double show(int x, char y, double z){} 不是重载
重写(覆盖)@Override:toString()
1、子类覆盖父类,必须保证子类权限大于父类权限才可以覆盖,否则会编译失败。
2、如果父类是private的方法,子类是默认方法,那么子类是不知道这个方法的,不是覆盖。
重载(Overload):同一个类中看同名方法的参数列表。(构造方法重载)
重写(Override):父子类方法要一模一样