只是想澄清重载和重写方法之间的区别...考虑下面的场景;
假设我有一个类(class),就说“类主任”。假设我有子类“Apprentice 类”,这样两个类通过继承相关。
public class Apprentice extends Master
假设主类包含 2 个 void 方法,每个方法都命名为 Attack,一个采用 Single 字符串参数,另一个采用 String 和 Int 参数。
public class Master{
void attack(String bodyPart){
//code for attacking
}
void attack(String bodyPart, int Damage){
//code for specific attack
}
如果 Apprentice 类有 2 个名称完全相同且参数完全相同的方法,那么 Master 类中定义的攻击方法是否会被重载或覆盖?
它不会被覆盖和重载吗!?
最佳答案
覆盖:
class A {
public void do() { /* ... */ }
}
class B extends A {
@Override
public void do() { /* ... */ } // have an other definition than the one in A
}
重载:
class C {
public void do(E e) { /* ... */ }
public void do(E e, F f) { /* ... */ } // same name but different arguments
}
它们是两个不同的概念。
关于java - 重写和重载之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31149195/