using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ATM
{
abstract class Account
{
//账户号码
protected long id;
public long ID
{
get { return id; }
set { id = value; }
}
//账户密码
protected string password;
public string PassWord
{
get { return password; }
set { password = value; }
}
//户主的姓名
protected string name;
public string Name
{
get { return name; }
set { name = value; }
}
//身份证号码
protected string personId;
public string PersonId
{
get { return personId; }
set { personId = value; }
}
protected string email;
public string Email
{
get { return email; }
set { email = value; }
}
//余额
protected double balance;
public double Balance
{
get { return balance; }
set { balance = value; }
}
//静态号码生成器
private static long idBuilder = 100000;
public static long IdBuilder
{
get { return idBuilder; }
set { idBuilder = value; }
}
public void Deposit(double sum)//存款
{
if (sum < 0)
throw new InvalidOperationException("输入的金额为负数");
balance += sum;
}
public abstract void Withdraw(double sum);//取款
public Account()
{ }
public Account(string password, string name, string personId, string email)
{
this.id = ++idBuilder;
this.password = password;
this.name = name;
this.personId = personId;
this.email = email;
}
}
//创建CreditAccount类,该类继承抽象类Account
class CreditAccount : Account
{
protected double ceiling;//透支额度
public double Ceiling
{
get { return ceiling; }
set { ceiling = value; }
}
public CreditAccount(string password, string name, string personId, string email)
: base(password, name, personId, email)
{ }
//信用账户的取款操作
public override void Withdraw(double sum)
{
if (sum < 0)
{
throw new InvalidOperationException("输入的金额为负数!");
}
if (sum > balance + ceiling)
{
throw new InvalidOperationException("金额已经超出余额和透支度的总数了");
}
balance -=