Java-覆盖现有函数

Java-覆盖现有函数,java,Java,有没有“重写”函数的方法。 伪: 输出:C只需在其子类中重写该方法 public class Something { public Something() { } public void printHi() { System.out.println("Hi"); } } public class SomethingElse extends Something { public SomethingElse() { } pub

有没有“重写”函数的方法。
伪:


输出:
C

只需在其子类中重写该方法

public class Something {
    public Something() {
    }
    public void printHi() {
        System.out.println("Hi");
    }
}

public class SomethingElse extends Something {
    public SomethingElse() {
    }
    public void printHi() {
        System.out.println("I refuse to say hi!");
    }
}

Something something = new Something();
something.printHi(); // prints Hi

SomethingElse somethingElse = new SomethingElse();
somethingElse.printHi(); // prints I refuse to say hi!
最重要的 在本例中,
MySubClass
覆盖继承的方法
myMethod

超载
在本例中,
MyClass
具有方法
myMethod
的多个定义,但它们接受不同的参数。

您所说的“重写”函数是什么意思?你是说在同一个班吗?在子类中?您可以。您可以重写子类中的方法并重载方法(重新定义w/不同的参数)。在子类中。您是否询问Java是否支持继承?是否必须使用注释?我记得几年前学习Java时不必这样做。这是一个需要它的新版本吗?事实证明你不需要。警察。所以即使不是强制性的,你也应该使用它。所以这个答案的最后一次编辑是一个很好的例子,说明了你不应该这样做。@Tom我想你链接中的答案中给出的理由很好。但这还不够重要,不足以强制使用该注释。用它来避免拼写错误是没有意义的。如果一个方法有一个难以跟踪的参数列表,那么很可能是写得很糟糕的代码。然而,这个讨论是离题的,所以我就到此为止。不过,您的链接很有用,也很受欢迎。@Gendarme“不过,这个讨论是离题的,所以我就到此为止。”:因为您的论点有点弱(我希望您只是刚刚接触编程),我很感激。:)。
public class Something {
    public Something() {
    }
    public void printHi() {
        System.out.println("Hi");
    }
}

public class SomethingElse extends Something {
    public SomethingElse() {
    }
    public void printHi() {
        System.out.println("I refuse to say hi!");
    }
}

Something something = new Something();
something.printHi(); // prints Hi

SomethingElse somethingElse = new SomethingElse();
somethingElse.printHi(); // prints I refuse to say hi!
class MyClass {
    public void myMethod () {
        System.out.println("MyClass");
    }
}

class MySubClass extends MyClass {
    @Override
    public void myMethod () {
        System.out.println("MySubClass");
    }

    public static void main (String[] args) {
        MyClass a = new MyClass();
        a.myMethod(); // "MyClass"
        MySubClass b = new MySubClass();
        b.myMethod(); // "MySubClass"
    }
}
class MyClass {
    public void myMethod () {
        System.out.println("myMethod");
    }

    public void myMethod (int i) {
        System.out.println(i * 2);
    }

    public void myMethod (String s) {
        System.out.println("Hello, " + s);
    }

    public static void main (String[] args) {
        MyClass a = new MyClass();
        a.myMethod(); // "myMethod"
        a.myMethod(33); // "66"
        a.myMethod("Jeremy") // "Hello, Jeremy"
    }
}