[英]Why do I get an error when I try to call a subclass method inside a baseclass method?
這是我的代碼:
public class Main {
public static void main(String args[]) {
A a = new A();
a.baseMethod();
}
}
class B{
public void baseMethod(){
System.out.println("B");
this.subMethod();
}
}
class A extends B{
public void subMethod(){
System.out.println("A");
}
}
/MyClass.java:14: 錯誤:找不到符號 this.subMethod();
^ 符號:方法 subMethod() 1 錯誤
我認為“this”指的是對象“a”,如果我把它放在 main 中它可以工作,並且類 Main 不會看到類 A,而類 B 不會,那么為什么我不能調用子類方法? 非常感謝
實際上在這種情況下,超類(A 類)可以訪問駐留在基類(B 類)中的方法,但基類不能。 如果你想通過調用超類(A類)的對象來訪問基類(B類)的方法,你可以。 但是,如果要通過調用基類的對象來訪問超類(A 類)方法,則應該在超類中實現相同的方法簽名。 “this”關鍵字表示調用它的相同對象引用(在您的情況下是 B 類對象)。
在兩個類中具有相同簽名的方法(baseMethod)后,您可以通過A a = new A();
對其進行測試A a = new A();
和A b = new B();
.
繼續編碼:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.