039_面向对象_12_方法的重写

一、概念部分

  a)方法的重写(override):在子类中可以根据需要对从基类中继承来的方法进行重写。
二、重写的特征 

  a)重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型。
  b)重写方法不能使用比被重写方法更严格的访问权限。(由于多态)

三、方法重写和方法重载的区别

  很多人问重写和重载什么区别? 他们两个完全是两回事。除了名字都带一个“重”字之外。
  方法重载指的是:同一个类中,一个方法名对应了多个方法(形参列表(参数个数,类型及顺序)不同)
  方法的重写指的是:子类重写了父类的方法!

四、演示示例

 

package edu.aeon.test;
/**
 * [说明]:测试继承及重写
 * @author aeon
 */
public class Animal {
    String eye;
    public void run() {
        System.out.println("跑跑!");
    }
    public void eat() {
        System.out.println("吃吃!");
    }
    public void sleep() {
        System.out.println("zzzzz");
    }
    public Animal() {
        System.out.println("创建一个动物!");
    }
}
class Mammal extends Animal {
    public void taisheng() {
        System.out.println("我是胎生");
    }
}
/**
 * 重写父类的run方法
 * @author aeon
 *
 */
class Bird extends Animal {
    @Override
    public void run() {
        //是否真的覆盖了父类的方法呢?没有、只是重写该方法的类重写了、何谈覆盖?
        super.run();
        System.out.println("鸟类既可以跑又可以飞呀!");
    }
    //还有其它自己独有的方法....
    public void eggSheng() {
        System.out.println("卵生");
    }
}
package edu.aeon.test;
/**
 * [说明]:测试重写
 * @author aeon
 */
public class Test {
    public static void main(String[] args) {
         Bird b = new Bird();
            b.run();
    }
}

测试结果截图:

  

 

如有任何疑问可联系邮箱: 给我发邮件、或直接联系QQ:1584875179 || 点返回首页

原文地址:https://www.cnblogs.com/aeon/p/9962608.html