继承关系的初始化顺序
- 父类属性
- 父类的构造方法
- 子类属性
- 子类的构造方法
什么是方法重写
- 方法重写的规则:
1. 方法名相同
2. 参数列表相同
3. 返回值列表相同或者是其子类相同
4. 访问权限不能严于父类
解析:
方法重写就是当我们在子类里边去调用父类的方法
时,没有办法输出子类特有的属性,原因是因为父类不
可以直接去访问子类的属性,这个时间就需要用到方法
重写或者叫做方法覆盖,那么什么是方法重写呢?
方法重写就是方法方法名相同,名称一摸一样,参
数列表相同,参数个数和类型要求必须一致,返回值类
型相同,或者是其子类,访问权限不能严于父类就是访
问修饰符的权限不能低于父类的修饰符访问权限。
接下来根据一个小案例感受一下这个知识点。
案例:
父类代码如下:
classGZ { privateStringname; privateintage; publicStringsex; publicGZ(){ System.out.println("父类无参构造方法"); } publicGZ(Stringa,intb,Stringc){ this.name=a; this.age=b; this.sex=c; System.out.println("父类有参构造方法"); } publicvoidshow(){ System.out.println("我是父类的构造方法"); } }
子类代码如下:
classDemoextendsGZ { publicstaticvoidmain(String[] args) { GZinput=newGZ(); } publicvoidsetSex(Stringsex){ this.sex=sex; } publicvoidshow(){ super.show(); System.out.println(sex); } }
子类代码如下:
publicclassSun { publicstaticvoidmain(String[] args){ GZinput=newGZ("铁锤",18,"男"); input.show(); } }
代码解析:
通过序号访问,不需要用呢,这个地方也可以不调用,
它并不是一个必须的关系,这是我们看到的重写,重写的
规则大家一定要,理解并熟练记住,方法名相同,参数相
同,返回之相同或是其子类,访问权限,不能言语负累,
这是一个重点,我们前面学过一个方法的重写,那我们对
方法重载和方法重写做一个对比,方法重写,是在子类当
中去重写父类,就是覆盖,要求方法名相同,参数相同,
返回值相同或是其子类,访问修饰符不能比父类更严格。
方法重载与方法重写的区别: