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"
}
}