当我尝试使用以下代码编译我的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()显然是继承的。为什么要说明此错误消息?感谢。
答案 0 :(得分:1)
StudentTicket需要扩展FreeSeat而不是TicketOrder
答案 1 :(得分:1)
这是程序中的一个简单错误。但我想解决你问题背后隐藏的大问题。每当你开始编码时,请记住一件事,先拿笔和纸。考虑一下您要实现的流程和算法。当你变得自信然后代码。
答案 2 :(得分:1)
我猜Ticket订单是你的主要类,你继承了那里的FreeSeat类&你试图通过StudentTicket类的对象调用免费座位类的方法,该类没有继承这样的方法。要检查只是更改StudentObject.checkStatus(); to this.checkStatus();你自己会找到问题所在。最后将FreeSeat扩展到StudentTicket。