c sharp -- 多态例子

using System;class p{static void Main(){Account acc1 = new Account ("0001","123456",10000);BankCard[] cards =new BankCard[]{new BankCard("A001","000456",2000),new CreditCard("A002","000456"),new CreditCard("A003","")};foreach (BankCard c1 in cards){c1.Pay (acc1, 3000);c1.Query ();}return; }public class Account{protected string id;protected string password;protected decimal money;public decimal Money{get {return money;}}public Account(string id,string password, decimal money=0){this.id=id;this.password=password;this.money=money;}public void Deposit(decimal x){money += x;}public bool Withdraw(decimal x){if (money < x) return false;money -= x;return true;}public virtual void Query(){Console.WriteLine ("账号{0}:余额{1}", id, money);}}public class BankCard: Account{public BankCard(string id,string password, decimal money=0):base(id,password, money){}public virtual bool Pay(Account acc1, decimal price){if (!this.Withdraw (price)) {Console.WriteLine ("余额不足,支付失败!");return true;}acc1.Deposit(price);Console.WriteLine ("卡{0}:消费{1}", id, price);return true;}}public class CreditCard: BankCard{private decimal limit;public CreditCard(string id, string password, decimal limit=5000):base(id, password,0){this.limit=limit;}public override void Query(){Console.WriteLine ("卡号{0}:余额{1}", id, limit+money);}public override bool Pay(Account acc1, decimal price){if (price-money>limit) {Console.WriteLine ("额度不足");return false;}money-=price;acc1.Deposit(price);Console.WriteLine ("卡{0}:消费{1}", id, price);return true;}}}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值