1

これは継承の問題であり、Ticket クラスは抽象的であり、Ticket クラスを拡張する AdvanceTicket クラスを作成しようとしています。AdvanceTicket クラスは、イベントの前に購入されたチケットとして機能し、イベントの 10 日前に購入したチケットの価格は $30 であると想定されています。イベントの 1 日前から 10 日前までに購入したチケットは 40 ドルです。

public abstract class Ticket {

    private int serialNumber;

    public Ticket() {
        serialNumber = getNextSerialNumber(); { 
        }
        //returns the price for this ticket
        public abstract double getPrice();
    }
    public String toString() {
        return "Number: " + serialNumber + "/nPrice: " + getPrice();
    }
    //returns a new unique serial Number
    public static int getNextSerialNumber() {
    //implementation not shown  
    }

}
4

3 に答える 3

2
class AdvanceTicket extends Ticket
{
     public double getPrice() //you must override abstract method ie. getPrice();
     {
           .......
     }
} 

オーバーライドしたくない 場合は、派生クラスでも抽象getPrice()として宣言し、派生クラスも抽象として宣言します。

abstract class AdvanceTicket extends Ticket
{
   public abstract getPrice();
}
于 2012-04-27T05:26:48.523 に答える
0

Ticketクラスを作成するときに簡単に拡張できます。

class AdvanceTicket extends Ticket {
    // Implementation here
}

コードに関する一般的な注意事項: を使用する場合はserialNumber、 を宣言する必要がありますstatic。また、/nする必要があります\n

于 2012-04-27T03:51:29.993 に答える
0
 class AdvanceTicket extends Ticket
于 2012-04-27T03:49:23.057 に答える