阅读以下说明和Java代码,将应填入( )处的字句写在答题纸的对栏内。
【说明】
现如今线下支付系统可以使用现金(Cash)、移动支付、银行卡( Card)(信用卡( Creditcard)和储蓄卡( Debitcard))等多种支付方式( PaymentMethod)对物品(tem)账单(Bill)进行支付。图 5-1 是某支付系统的略类图。

【Java代码】
import java. util. Array List;
import java. util. List;
interface PaymentMethod {
Public ( 1 )
}
∥cash、 Debitcard和ltem 实现略,ltem中getPrice( )取当前物品对象的价格
abstract class Card (2) {
private final String name, num;
public Card(string name, String num){this.name= name; this, num = num; }
@Overide
public String toString ( ) {
return String. format(“%s card[name = %s, num =%s}”, this. getType( ), name, num);
@override
public void pay(int cents) {
System. out. printin(“Payed"+ cents+"cents using"+toString( ));
this, execute Transaction(cents);
}
protected abstract String getType( ):
protected abstract void execute Transaction(int cents)
}
class CreditCard ( 3 ) {
public CreditCard(String name, String num){ (4) ;}
@Override
protected String getType( ){ return"CREDIT";}
@Override
protected void execute Transaction(int cents) {
System. out. Println(cents +"paid using Credit Card. ");
}
}
Class Bill {//包含所有购买商品的账单
private List<ltem> items =new ArrayList< >( );
public void add(Item item) { items. add(item): }
public intgetTotalPrice( ) {/*计算所有 item 的总价格,代码略*/}
public void pay( PaymentMethod paymentMethod) {//用指定的支付方式完成支付
(5) (getTotalPrice():
}
}
public class Paymentsystem {
public void pay( ) {
Bill bill =new Bill ( );
Item item1 = new Item(1234, 10); Item item2 new Item(“5678”, 40);
Bill.add(item1); bill. add(item2);//将物品添加到账单中
Bill.pay(new Creditcard("LI SI”, "98765432101"))∥信用卡支付
}
public static void main(Stringl args) {
(6) = new Paymentsystem( );
payment pay( );
}
}


