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(); } }
测试结果截图: