继承问题“找不到符号:方法”但声明了方法

时间:2017-04-17 18:49:58

标签: java inheritance

当我尝试使用以下代码编译我的Java程序时:

这是我的ticketorder.java文件

   class TicketOrder extends FreeSeat {
StudentTicket StudentObject = new StudentTicket();     // Created a class and class constructor named StudentTicket
            StudentObject.DiscountStudentBought();                 // Notifies the customer has bought the ticket
            StudentObject.checkStatus();
            int Studentprice = StudentObject.getStudentPrice();    // Takes the price from the StudentTicket Class and assigns it to an integer
            Studentprice = Studentprice - 2;                       // Deducts a value of 2 from the price.
            TicketPrices.add(Studentprice);                        // Adds the final ticket price to an Array

这是我的FreeSeat.java文件

class FreeSeat {

public void checkStatus() {

    System.out.println("Seat Booked");

}

}

当我尝试编译程序时,它会说明

 error: cannot find symbol
  StudentObject.checkStatus();


Symbol:   method checkStatus()



location: variable StudedntObject of type StudentTicket


1 error

我的问题是,即使checkStatus()显然是继承的。为什么要说明此错误消息?感谢。

3 个答案:

答案 0 :(得分:1)

StudentTicket需要扩展FreeSeat而不是TicketOrder

答案 1 :(得分:1)

这是程序中的一个简单错误。但我想解决你问题背后隐藏的大问题。每当你开始编码时,请记住一件事,先拿笔和纸。考虑一下您要实现的流程和算法。当你变得自信然后代码。

答案 2 :(得分:1)

我猜Ticket订单是你的主要类,你继承了那里的FreeSeat类&你试图通过StudentTicket类的对象调用免费座位类的方法,该类没有继承这样的方法。要检查只是更改StudentObject.checkStatus(); to this.checkStatus();你自己会找到问题所在。最后将FreeSeat扩展到StudentTicket。