【java代码】 class invoice{ public void printInvoice(){ System.out.println ( "This is the content of the invoice!"); } } class Decorator extends Invoice { protected Invoice ticket; public Decorator(lnvoice t){ ticket = t; } public void printInvoice(){ if(ticket != null) (1) ; } } class HeadDecorator extends Decorator{ public HeadDecorator(lnvoice t){ super(t); } public void printInvoice (){ Systent.out.println( "This is the header of the invoice! "); (2) ; } } class FootDecorator extends Decorator { public FootDecorator(Invoice t){ super(t); } public void printlnvoice(){ ( 3) ; Systent.out.println( "This is the footnote of the invoice! "); } } Class test { public static void main(String[] args){ Invoice t =new Invioce(); Invoice ticket; ticket= (4) ; ticket.printInvoice(); Systent.out.println(“------------------“); ticket= (5) ; ticket.printInvoice(); } } 程序的输出结果为: This is the header of the invoice! This is the content of the invoice! This is the footnote of the invoice! ---------------------------- This is the header of the invoice! This is the footnote of the invoice!