- 什么是方法的重写
如果子类对继承的父类方法不满意,是可以重写父类继承的方法的。当调用方法时,会优先调用子类的方法 - 语法规则:
a.返回值类型
b.方法名
c.参数类型及个数
都要与父类继承的方法相同,才叫方法的重写。
代码示例如下:
我们先创建一个Animal类为父类//Animal类为父类 public class Animal { public int age ; public String name; public void eat(){ System.out.println("动物具有吃东西的能力"); } }
再创建一个子类:Dog类
//Dog类作为子类,继承自父类Animal public class Dog extends Animal { //Dog类中重写父类Animal类的成员方法——eat() public void eat(){ System.out.println("狗是可以吃东西的"); } }
在实现类中进行测试public class Initial { public static void main(String[] args) { //创建一个Dog类对象 Dog dog = new Dog(); //dog对象调用eat()方法 dog.eat(); } }
最后的运行结果:
狗是可以吃东西的
可以看出,Dog子类重写了父类eat()方法后,子类对象再调用eat()将优先调用子类的方法!
注意:
(1)仅当父类的方法是可访问时,它才能被覆盖。父类的私有方法不能被覆盖。如果子类中定义的方法和父类中的私有方法同名,那么这两个方法完全没关系。
(2) 静态方法可以被继承但是不可以被覆盖。如果父类中的静态方法被子类重写定义,那么定义在父类中的静态方法将被隐藏,可用父类名 . 静态方法调用隐藏的静态方法。