2017-05-03 54 views
0

我搜索了stackoverflow和谷歌,但無法理解。這是我的代碼。 類測試和類測試在不同的封裝,類測試儀的get()類測試的我不能擴展測試類如何在創建對象時重載類的功能

我要重寫令牌()

public class Test{ 
    private String d; 
    private String f; 

    Test(String d, String f) { 
     this. d = d; 
     this.f = f; 
    } 

    public String token(String a, String b) { 
     String c; 
     // token() logic 
     return c; 
    } 

} 

public class Tester{ 

    public void get() { 
     Test t = new Test (「sample1」, 「sample2」); 
     // get() logic 
    } 

} 
+0

你想重寫哪一種方法? – fujy

+0

@fujy我想重寫類Tester的get()中Test類的token() – user3625750

+0

這是不可能的。你不能覆蓋而不擴展。你不能擴展它嗎? – shmosel

回答

1

你不喜歡這樣

Test t = new Test("abc","xyz"){ 
    @Override 
    public String token(String a, String b) { 
    // New logic here 
    }  
}; 
+0

我需要重寫令牌()來返回一個字符串。那可能嗎 ?另外,當我正在做上述事情時,它會拋出錯誤「方法不會覆蓋從它的超類的方法」 – user3625750

+0

是的,如果原始方法具有相同的簽名 – fujy

+0

您可以在這裏創建具有默認構造函數的對象,但在我的情況下我有參數化的構造函數。而當我用戶參數化構造函數創建對象時,這將拋出錯誤「方法不會覆蓋它的超類方法」 – user3625750