继承关系的初始化顺序

  • 父类属性
  • 父类的构造方法
  • 子类属性
  • 子类的构造方法

什么是方法重写

  • 方法重写的规则:
  1. 方法名相同
  2. 参数列表相同
  3. 返回值列表相同或者是其子类相同
  4. 访问权限不能严于父类

解析:

方法重写就是当我们在子类里边去调用父类的方法时,没有办法输出子类特有的属性,原因是因为父类不可以直接去访问子类的属性,这个时间就需要用到方法重写或者叫做方法覆盖,那么什么是方法重写呢?

方法重写就是方法方法名相同,名称一摸一样,参数列表相同,参数个数和类型要求必须一致,返回值类型相同,或者是其子类,访问权限不能严于父类就是访问修饰符的权限不能低于父类的修饰符访问权限。

接下来根据一个小案例感受一下这个知识点。

案例:

父类代码如下:

class GZ {
    private String name;
    private int age;
    public String sex;
     public GZ(){
         System.out.println("父类无参构造方法");
     }
     public GZ(String a,int b,String c){
         this.name=a;
         this.age=b;
         this.sex=c;
         System.out.println("父类有参构造方法");
     }
    public void show(){
         System.out.println("我是父类的构造方法");
    }
}

子类1代码如下:

class Demo extends GZ {
    public static void main(String[] args) {
        GZ input = new GZ();    }
    public void setSex(String sex){
        this.sex=sex;
    }
    @Override
    public void show(){
        super.show();
        System.out.println(sex);
    }
}

子类2代码如下:

public class Sun {
    public static void main(String[] args){
        GZ input=new GZ("铁锤",18,"男");
        input.show();
    }
}
解析:

通过序号访问,不需要用呢,这个地方也可以不调用,它并不是一个必须的关系,这是我们看到的重写,重写的规则大家一定要,理解并熟练记住,方法名相同,参数相同,返回之相同或是其子类,访问权限,不能言语负累,这是一个重点,我们前面学过一个方法的重写,那我们对方法重载和方法重写做一个对比,方法重写,是在子类当中去重写父类,就是覆盖,要求方法名相同,参数相同,返回值相同或是其子类,访问修饰符不能比父类更严格。

方法重载与方法重写的区别:

Java编程之方法重写_子类