要求输出:
这是票据的台头!
这是票据的正文!
这是票据的脚注!
-----------
这是票据的台头!
这是票据的脚注!请问下面的五个空该怎么填呢?
代码如下:class SalesTicket {
public void printTicket() {
System.out.println("这是票据正文!");
}
}class Decorator extends SalesTicket {
SalesTicket ticket;
public Decorator(SalesTicket t) {
ticket = t;
}
public void printTicket() {
if(ticket != null) {
ticket.printTicket();
}
}
}
class HeadDecorator extends Decorator {
public HeadDecorator(SalesTicket t) {
_________________________;                               (1)
}
public void printTicket() {
System.out.println("这是票据的台头!");
super.printTicket();
}
}class FootDecorator extends Decorator {
public FootDecorator(SalesTicket t) {
____________________________;                             (2)
}
public void printTicket() {
super.printTicket();
System.out.println("这是票据的脚注");

}
}public class Main {
public static void main(String [] args) {
T = new HeadDecorator(__________________);       (3)
T._______________________;                       (4)
System.out.println("-------------");
T = new HeadDecorator(_____________________);    (5)
T.printTicket();
}}

解决方案 »

  1.   

    1: super(t);
    2: super(t);
    3: new FootDecorator(new SalesTicket ());
    4: new SalesTicket ();
      

  2.   

    3: printTicket();  //插入
      

  3.   

    各空填写如下:class SalesTicket { 
       public void printTicket() { 
          System.out.println("这是票据正文!"); 
        } 

    class Decorator extends SalesTicket { 
     SalesTicket ticket;   public Decorator(SalesTicket t) { 
             ticket = t; 
     }    public void printTicket() { 
        if(ticket != null) { 
         ticket.printTicket(); 
        } 
       } 

    class HeadDecorator extends Decorator { 
       
    public HeadDecorator(SalesTicket t){ 
               super(t);                                                   //(1) 
        } 
       public void printTicket() { 
         System.out.println("这是票据的台头!"); 
         super.printTicket(); 
        } 
    }  class FootDecorator extends Decorator { 
    public FootDecorator(SalesTicket t) { 
    super(t);                          //(2) 

    public void printTicket() { 
    super.printTicket(); 
    System.out.println("这是票据的脚注");  } 
    }  public class Main { 
       
    public static void main(String [] args) { 
               HeadDecorator T = new HeadDecorator(new FootDecorator(new SalesTicket()));      //(3) 
               T.printTicket();                     // (4) 
               System.out.println("-------------"); 
               T = new HeadDecorator(new FootDecorator(null));   // (5) 
               T.printTicket(); 
       }  } 
    运行结果如下:这是票据的台头!
    这是票据正文!
    这是票据的脚注
    -------------
    这是票据的台头!
    这是票据的脚注