2017-03-08 147 views
-3

我有一個問題我有一個父類,它是抽象的,孩子是不是抽象的,也沒有覆蓋方法,但孩子的孩子有這 的Java給了一個錯誤信息給我什麼我可以做出第一個孩子抽象,而不添加重寫方法嗎?抽象類兒童

這是父:

public abstract class MobileDevice { 
    public abstract void display(); 
} //end class 

這是第一個孩子:

public class MobileComputer extends MobileDevice { 
    public MobileComputer(String b, double s) { 
     super(b,s); 
    } //end cons 
} //end class 

這是第二個孩子 「孩子的孩子」:

public class TabletComputer extends MobileComputer { 
    public void display() { 
     System.out.println(""); 
    } 
} //end class 
+3

你不能跳過需要重寫'display'的步驟,但可以使'MobileComputer''抽象' – SomeJavaGuy

+0

你想做什麼? – thanga

回答

3

您有三個主要選項:

  1. MobileComputer抽象的,這意味着你不需要實現該方法在該類
  2. MobileComputer實現方法,但其保留爲空,或者它扔異常如java.lang.UnsupportedOperationException
  3. 請與display()方法稱爲Displayable(或東西)的接口,並且只TabletComputer實現它。
+0

是的,我認爲界面是他們想要的東西,謝謝。 – SOS

0

如果要擴展任何抽象類,則必須實現其所有抽象方法或將該類聲明爲抽象類。 聲明MobileComputer爲抽象或實現display()方法(空方法也是可以接受的,因爲它會除去至少編譯錯誤)。