我正在用Java寫一個簡單的Web瀏覽器。我有一個WebBrowserPane類,它擴展了JEditorPane並將其設置爲更好地顯示網頁(禁用編輯,添加HyperlinkListener等)。然後我有一個類WebBrowserFrame,它擴展了JFrame並在頂部放置了一些按鈕和一個地址欄,下面放置了一個WebBrowserPane。儘管如此,我不希望它只能放置一個WebBrowserPane,但我希望它能夠擴展JEditorPane並具有相關方法。這個抽象類的接口相當於
我寫了一個抽象類,AbstractBrowser來實現這一目標:
import javax.swing.JEditorPane;
public abstract class AbstractBrowser extends JEditorPane {
public void back(){}
public void forward(){}
public void refresh(){}
}
WebBrowserPane然後擴展AbstractBrowser:然後
public class WebBrowserPane extends AbstractBrowser {
WebBrowserPane(){
setEditable(false);
//etc
}
public void back(){
//blah
}
}
WebBrowserFrame接受任何AbstractBrowser作爲參數:
public class WebBrowserFrame extends JFrame{
WebBrowserFrame(AbstractBrowser a){
add(a);
}
}
顯然這並不能確保抽象類的方法是永遠的重寫,所以我意識到它不是一個很好的解決方案。有沒有辦法使用界面來完成此操作?
正是我在找的。乾杯! – Michael