簡體   English   中英

無法使用Java子類的公共方法

[英]Can not use public methods of subclasses java

我正在使用NetBeans用JTable-s創建一些桌面應用程序,但是我遇到了麻煩:

我正在創建JTable的子類,假設CustomJTable:

public class CustomJTable extends JTable {

    private Object[][] someData;

    public CustomJTable (Object[][] someData) {
        this.someData = someData;
    } 

    public doSomething () {
        // do something
    }
}

public class MyApp {

    ...
    public void someMethod (Object[][] someData) {
        JTable table = new CustomJTable(someData);
        table.doSomething();  // this method does not belong to JTable and    
                              // is unusable to me in NetBeans
    }
    ...
}

NetBeans表示在類JTable中找不到doSomething方法。 因為我也不是很困惑。 感謝您的建議。

這只是縮短的示例代碼,以顯示故障源。

您正在實例化JTable的實例,然后嘗試調用屬於CustomJTable的方法。

在CustomJTable中擴展JTable不會為您提供CustomJTable擁有的方法。

為了調用該方法實例化正確的對象:

CustomJTable table = new CustomJTable(someData);

由於運行時多態性,它將在運行時解決。 您需要輸入類型轉換。

JTable table = new CustomJTable(someData);
        ((CustomJTable) table).doSomething(); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM