2013-08-01 188 views
4

我只是有一個問題,有沒有辦法從一個不同類的私人類訪問公共方法?例如,print方法可以從不同的類訪問,因爲該類是私有的?如何從java中的不同類中的私有類訪問公共方法?

private class TestClass { 
    public void print() { 
    } 
} 
+2

你爲什麼不嘗試自己並不困難:) – nachokk

+0

可以在任何TestClass對象上調用print方法。麻煩來自實現這樣的目標。 – Sinkingpoint

+0

但是,當我嘗試它說方法未定義的類 –

回答

4

是的。

您實際上不會返回對您的私人類的直接引用,因爲其他類不能使用它。相反,你擴展了一些公共類,並將你的私有類作爲該公共類的一個實例返回。然後可以調用它繼承的任何方法。

public interface Printable { 
    void print(); 
} 

public class Test { 
    public Printable getPrintable() { 
     return new PrintTest(); 
    } 

    private class PrintTest implements Printable { 
     public void print() { 
     } 
    } 
} 

Test test = new Test(); 
test.getPrintable().print(); 
+2

哦所以通過實現一個接口,我們可以創建一個鏈接,允許我們從私人類訪問打印方法?如何擴展私人課程並訪問它? –

+0

是的,你也可以這樣做,因爲私有類的子類也將繼承私有類的超類。希望這不會和我一樣讓你感到困惑。 –

+1

哈哈不,你真的清楚了一個例子,它幫助我更快地掌握它。謝謝你的幫助。 –

0

您可以通過使用公共類擴展該類來做到這一點。或者你可以隨時使用反射!

相關問題