2017-04-26 57 views
0

我對以前的問題做出了很好的迴應,所以我要在這裏推動我的運氣。 雖然已經有一篇很棒的文章, What does a "Cannot find symbol" compilation error mean?我st to尋找適用的原因和原因。找不到繼承的類

在創建對象FirstClassTicket時,會出現此錯誤,它在調用FirstClass的equals之前和之後。我假設我從Ticket繼承FirstClass時犯了一個錯誤,因爲在我開始包含不同的票據類型之前,它最初運行正常,並且調用Ticket。

class Booking{ 
    public static class Ticket{ 
     int Price; 
     int Amount=1; 
     int Discount=0; 
     public int WhatCost(){ 
      int Cost =Amount*(Price-Discount); 
      return Cost; 
     } 
     //Inheriting Ticket classes. 
    class FirstClass extends Ticket{ //Defines standard class tickets. 
     int Price =10; 
    } 

    } 
    public static void main(String args[]) { 
     FirstClass FirstClassTicket=new FirstClass(); 
     Scanner scanner = new Scanner(System.in); 
     System.out.println("Welcome to the advance booking service.");//Introduce program. 
     System.out.println("A first class ticket costs:"); 
     System.out.println(FirstClassTicket.WhatCost()); 
    } 
} 
+2

您將FirstClass定義爲Booking的內部類。按照Java標準爲自己做個忙,並在每個類中定義一個獨立的文件。當然,除非你真的想要有一個內心階層(我非常懷疑)。相關閱讀材料:[Java教程:嵌套類](https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html) –

+2

...或者只是製作'FirstClass'' static'。 –

+0

好的,我會看看那個。也試圖轉換爲'靜態類FirstClass擴展Ticket {//定義標準類ticket.'沒有改變錯誤。 –

回答

0

您已將FirstClass定義爲票證的內部類。將FirstClass設置爲靜態,並按如下所示訪問它。

Booking.Ticket.FirstClass FirstClassTicket=new Booking.Ticket.FirstClass();