编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

重写父类方法

在继承关系中,子类会自动继承父类中定义的方法,但有时在子类中需要对继承的方法进行一些修改,即对父类的方法进行重写。需要注意的是,在子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表以及返回值类型。

例中,Dog类从Animal类继承了shout()方法,该方法在被调用时会打印“动物发出叫声”,这明显不能描述一种具体动物的叫声,Dog类对象表示犬类,发出的叫声应该是“汪汪”。为了解决这个问题,可以在Dog类中重写父类Animal中的shout()方法。

// 定义动物类
class Animal {
    String name;
    void shout() {
        System.out.println("动物发出叫声");
    }
}
// 定义dog类继承动物类
class Dog extends Animal {
    void shout() {
        System.out.println("汪汪汪汪");
    }
}
public class Example {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.shout();
    }
}

运行结果:

汪汪汪汪

案例中定义了Dog类并且继承自Animal类。在子类Dog中定义了一个shout()方法对父类的方法进行重写。从运行结果可以看出,在调用Dog类对象的shout()方法时,只会调用子类重写的该方法,并不会调用父类的shout()方法。

注意:子类重写父类方法时,不能使用比父类中被重写的方法更严格的访问权限,如父类中的方法是public的,子类的方法就不能是private的,关于访问权限中更多的知识,我们将在本章结尾进行详细讲解,在这里大家只要有个印象就行了。

未经允许不得转载: 技术文章 » Java编程 » 重写父类方法