2012-04-27 6 views
1

Ceci est un problème d'héritage et la chose est la classe Ticket est abstraite et j'essaye de faire une classe AdvanceTicket qui étend la classe Ticket. La classe AdvanceTicket est supposée agir comme des billets achetés avant un événement et que les billets achetés 10 jours avant l'événement coûtent 30 $. Les billets achetés au moins 1 mais moins de 10 jours avant l'événement coûtent 40 $.Comment créer une classe étendue à partir d'une classe abstraite?

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 
    } 

} 
+0

Le comportement que vous avez décrit doit être dans un contrôleur et non dans le modèle (Ticket). Est-ce que ce sont les devoirs? – Perception

+0

J'ai le même type de question. Je sais que vous étendez simplement Ticket, mais qu'y aurait-il dans cette classe de billets avancés? –

Répondre

0
class AdvanceTicket extends Ticket 
0

Vous pouvez simplement étendre Ticket lors de la création de la classe.

class AdvanceTicket extends Ticket { 
    // Implementation here 
} 

Remarque générale sur le code: Si vous allez utiliser serialNumber, il doit être déclaré static. En outre, /n doit être \n.

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

Si vous ne voulez pas passer outregetPrice(), puis déclarer comme abstraite en classe dérivée aussi, et aussi déclarer classe dérivée comme abstraite.

abstract class AdvanceTicket extends Ticket 
{ 
    public abstract getPrice(); 
} 
Questions connexes