面向对象编程----方法的重写(override)
方法的重写(override)
在子类中可以根据需要对从基类中继承来的方法进行重写。
重写方法必须和重写方法具有相同方法名称、参数列表和返回类型。
重写方法不能使用比被重写方法更严格的访问权限。(由于多态)
重载一个方法名可以对应多个方法,因为形参列表不同。
重写和重载是两码事。
package cn.bjsxt.oop.inherit;
public class Animal /*extends Object */{
String eye;
public void run() {
System.out.println("咳咳咳!");
}
public void eat() {
System.out.println("色块!");
}
public void sleep() {
System.out.println("干饭!");
}
}
class Mammal extends Animal {
public void taishang() {
System.out.println("洛赛克!");
this.run();
this.eat();
}
}
class Paxing{
String eye;
public void run() {
System.out.println("咳咳咳!");
}
public void eat() {
System.out.println("色块!");
}
public void eggSheng() {
System.out.println("了空间!");
}
}
class Bird extends Animal{
String eye;
// 重写 子类需要 自己扩展把原先父类的方法重新编译
// 在这里把run()覆盖掉之后,实际上还存在可以再继承后的子类的方法中继续调用
public void run() {
在这里可以通过super.run()调用父类被子类覆盖的方法run()。
super.run();
System.out.println("我是我是一只鸟,我会飞!");
}
public void eggSheng() {
System.out.println("了空间!");
}
}
package cn.bjsxt.oop.inherit;
public class Test {
public static void main(String[] args) {
创建一个实例化对象
Bird b = new Bird();
调用重写后的run()方法
b.run();
调用父类中的方法eat()
b.eat();
b.eggSheng();
}
}
本文来自博客园,作者:神奇的梦,转载请注明原文链接:https://www.cnblogs.com/fantasticDream/p/16310721.html