方法覆盖

Posted 旅旅LV

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了方法覆盖相关的知识,希望对你有一定的参考价值。

方法覆盖:

package cn.fugai;
//Animal
public class Animal {
public void move() {
System.out.println("动物在移动");
}

}
// Dog
package cn.fugai;

public class Dog extends Animal {
//当然可以右键-->Source-->Override/Implement Methods
public void move() {
System.out.println("汪汪");
}
}
// Bord
package cn.fugai;

public class Bord extends Animal {
public void move() {
System.out.println("飞飞");
}
}
//YingWu
package cn.fugai;

public class YingWu extends Bord {
public void Bord() {
System.out.println("飞叫");

}
}
package cn.fugai;
/**
方法的重载:
1、方法重载又称为Overload
2、方法重载什么时候使用?
当在同一个类当中,方法完成的功能是相似的,建议方法名相同,这样方便程序员的编程,
就像在调用一个方法似的。代码美观。
3、什么条件满足之后构成方法重载?
在同一个类当中方法名相同
参数列表不同:类型、顺序、个数
4、方法重载和什么无关?
和方法的返回值类型无关
和方法的修饰符列表无关

方法的覆盖:
1、方法覆盖又被称为方法重写,英语单词:override
2、什么时候使用方法重写?
当父类中的方法已经无法满足当前子类的业务需求,子类有必要将父类中继承过来的方法进行重新编写,
这个重新编写的过程称为方法覆盖。
3、什么条件满足之后方法会发生重写呢?
方法重写发生在具有继承关系的父子类之间
方法重写的时候:返回值类型相同,方法名相同,形参列表相同方法重写的时候:访向权限不能更低,可以更高。
方法重写的时候:抛出异常不能更多,可以更少。
4、建议方法重写的时候尽量复制粘贴,不要编写,容易出错,导致没有产生覆盖。
5、注意:
私有方法不能继承,所以不能覆盖。
构造方法不能继承,所以不能墓盖。
静态方法不存在覆盖。
覆盖只针对方法,不针对属性。

*/

public class Test {

public static void main(String[] args) {
Animal a = new Animal();
a.move();

Dog d = new Dog();
d.move();

Bord b = new Bord();
b.move();

YingWu y= new YingWu();
y.Bord();

}

}

以上是关于方法覆盖的主要内容,如果未能解决你的问题,请参考以下文章

Android片段z-index覆盖

如何覆盖继承的嵌套类中存在的虚拟方法

我可以在不放入 Activity 的情况下覆盖/处理片段中的 keyDown 吗?

从父片段到选项卡片段的接口侦听器不起作用

覆盖javascript以消除闪烁

覆盖一个常见的片段帮助其他标签片段