程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> java-一個Java方法的問題,求助大神了,謝謝

java-一個Java方法的問題,求助大神了,謝謝

編輯:編程解疑
一個Java方法的問題,求助大神了,謝謝

先上代碼
//父類
public abstract class Parent {
public abstract void onSuccess();
public void Success(){
onSuccess();
}
}

//子類
public class child extends Parent {
@Override
public void onSuccess() {

}

}

//調用
public class diaoyong {
public void diaoyong(){
new child(){
@Override
public void onSuccess() {

        }
    };
}

}

第一個問題:我new diaoyong 類,然後調用他的diaoyong方法,為什麼程序走不下去了,也不報錯
第二個問題:如果能調用,為什麼他找到的是Parent類方法裡的onSuccess呢

最佳回答:


首先,你的測試代碼有問題啊,你定義了一個匿名對象child,有沒有其他操作,當然沒有任何結果了,而且也沒有main方法,所以測試不了。
其次,雖然不明白你的diaoyong 類的用意,但是猜測可能你是想測試多態。修正下你的child類,去掉diaoyong類。修正如下:

 public class child extends Parent {
    @Override
    public void onSuccess() {
        System.out.println("Child onSuccess 實現父類onSuccess");
    }

    public static void main(String[] args) {
        Parent parent = new child();
        parent.onSuccess();
    }
}

多態的本質是你定義的是父類類型的變量,並且賦值為一個子類的實現,那麼調用某個方法時,實際上是運行時子類類型的方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved