Java编程之方法重写

223 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

继承关系的初始化顺序

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

什么是方法重写

  • 方法重写的规则:
  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("我是父类的构造方法");
    }
}

子类代码如下:

 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);
    }
}

子类代码如下:

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

解析:

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

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

方法重载与方法重写的区别.png