• 目录

方法的覆盖和重写

阅读量: 150 编辑

方法的覆盖和重写

一、如何实现方法的覆盖和重写?

  • 当子类继承父类时,可以从父类继承它的属性和方法

  • 如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。通常要加上 @Override 注解

  • 当对父类的方法进行覆盖时,子类中的方法必须和父类中对应的方法具有相同的方法名称、输入参数和返回值

  • 子类中的覆盖方法不能使用比父类中被覆盖方法更严格的访问权限

二、代码实战

代码的详细解读,可以参考视频教程

父类:Person.java

package com.qicong.gj.c04;

/**
 * User: 祁大聪
 */
public class Person {

    public String name;

    public Integer age;

    private Integer money;

    public void dance(){ //子类可以重写
        System.out.println("我会跳舞");
    }

    public void sing(String song){ //子类可以重写
        System.out.println("我会唱歌");
    }

    private void  getMoney(){
        System.out.println("取现金");
    }
}

子类:Boy.java

package com.qicong.gj.c04;

/**
 * User: 祁大聪
 */
public class Boy extends Person{

    //当重写的时候,我们要加上这个注解,显示说明子类重写了
    @Override
    public void sing(String song) {
        System.out.println("男孩子喜欢唱rap");
    }
}

子类:Girl.java

package com.qicong.gj.c04;

/**
 * User: 祁大聪
 */
public class Girl extends  Person{

    @Override
    public void dance() {
        System.out.println("女孩子喜欢跳民族舞");
    }

    public static void main(String[] args) {
        Girl g = new Girl();
        g.dance(); //打印:女孩子喜欢跳民族舞
        
        Person p = new Girl();
        p.dance(); //打印:女孩子喜欢跳民族舞
        
    }
}
  • 目录