多态性
override
重新实现从父类继承来的方法, 成为覆盖(override).
已有的类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扩充出新的类ICBCAccount
在ICBCAccount 重写了继承自Account的方法 withdraw(int amount).
ICBCAccount 的构造函数ICBCAccount(String accountID, int balance)会调用Account的构造函数Account(String accountID, int balance).
super()代表父类的构造函数, 这里是Account.
this()代表当前类的构造函数.
super代表父类对象.
this代表当前的对象.
public class ICBCAccount extends Account {
@Override
public void withdraw(int amount) {
if (this.getBalance() > amount) {
super.withdraw(amount);
}
}
public ICBCAccount(String accountID, int balance) {
super(accountID, balance);
}
}
多态性的表现
在把子类(型)的对象当做父类(型)的对象使用时, 优先调用子类的方法.