[英]questions about this reference in Java
我對以下程序中的這個引用有一點疑問,為什么結果是“我在 B 中”,我的問題是在超級 class 構造函數中我們如何能夠訪問子類方法。
class A {
A()
{this.print();}
public void print(){
System.out.println("I am in class A");
}
}
class B extends A {
public void print() {
System.out.println("I am in class B");
}
public static void main(String args[]) {
new Stest();
}
}
與 c++ 不同,即使調用來自超級 class 構造函數,也會調用重寫方法。
這就是多態性。 因此,您正在 A 中運行一個調用 print 方法的實例初始化程序。 由於類型實際上是 B 它是針對 B 執行的方法。
我的問題是在超級 class 構造函數中我們如何能夠訪問子類方法
我不確定我是否理解您的問題...但是如果您想從 B 調用 A 的 print() 方法,您可以使用“super”關鍵字來實現。
class B extends A {
B() { super.print(); }
public void print() {
System.out.println("I am in class B");
}
public static void main(String args[]) {
new Stest();
}
}
this
是指調用該方法的object。 因此它指的是 class B object。 您可以參考以下鏈接:
http://www.cs.utexas.edu/~lavender/courses/tutorial/java-05.pdf
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.