Java的单继承extend
扩充
在已有的类(class)的基础上扩充出新的类。
示例
已有的类Account
public class Account {
private String accountID;
private int balance;
public void deposit(int amount){
this.balance = this.balance + amount;
}
public void withdraw(int amount){
this.balance -= amount;
}
public Account() {
}
public Account(String accountID, int balance) {
this.accountID = accountID;
this.balance = balance;
}
}
从Account扩充出新的类CCBAccount
CCBAccount 的默认构造函数CCBAccount ()会调用Account的默认构造函数Account().
如果Account没有默认构造函数, 那么CCBAccount 会出语法错误, 报告调用了不存在的构造函数.
public class CCBAccount extends Account{
public void transferTo(Account to, int amount){
this.withdraw(amount);
to.deposit(amount);
}
}
从Account扩充出新的类ICBCAccount
ICBCAccount 的构造函数ICBCAccount(String accountID, int balance)会调用Account的构造函数Account(String accountID, int balance).
super()代表父类的构造函数, 这里是Account.
this()代表当前类的构造函数.
super代表父类对象.
this代表当前的对象.
public class ICBCAccount extends Account{
public void transferTo(Account to, int amount){
this.withdraw(amount);
to.deposit(amount);
}
public ICBCAccount(String accountID, int balance) {
super(accountID, balance);
}
}