有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java重写和重载之间的区别?

只是想弄清楚超载和;重写的方法。。。考虑下面的情景;

比如说我有一门课,比如说“班主任”。假设我有一个子类“班学徒”,这两个类通过继承关系联系在一起

       public class Apprentice extends Master

假设主类包含两个void方法,每个方法都是命名攻击,一个接受一个字符串参数,另一个接受一个字符串和一个Int参数

        public class Master{
void attack(String bodyPart){
//code for attacking
}

void attack(String bodyPart, int Damage){
//code for specific attack
}

如果学徒类有两个名为“完全相同”的方法,它们采用完全相似的参数,那么主类中定义的攻击方法会被重载还是重写

它不是既被覆盖又被重载吗


共 (1) 个答案

  1. # 1 楼答案

    压倒一切的:

     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
    }
    

    它们是两个不同的概念