public abstract class Person {
protected String name;
public String getName(){
return this.name;
}
//进银行取号 等待叫号
public abstract void callNum();
//到窗口办理业务
public abstract void setBusiness();
//离开银行
public abstract void leave();
}
public class YongMan extends Person{
public YongMan(){}
public YongMan(String name){
this.name = name;
}
public void callNum() {
System.out.println("年轻人来到了银行,自己拿到了小票");
}
public void setBusiness() {
System.out.println("年轻人熟悉银行的业务,很快就办理完了业务");
}
public void leave() {
System.out.println("年轻人办理完业务,急冲冲的离开了");
}
public class OldMan extends Person{
public OldMan(){}
public OldMan(String name){
this.name = name;
}
public void callNum(){
System.out.println("老年人年纪高了,不熟悉业务,需要帮助");
}
public void setBusiness() {
System.out.println("老人家慢悠悠的在窗口办理业务");
}
public void leave() {
System.out.println("办理完业务后,老人慢悠悠的离开了");
}
public class Bank {
//等待客户来办理业务
public void handleBusiness(Person person){
//利用多态的特性 传递参数时只需要传递一个父类这一个对象
//就算再多一个类 只需要这个类也继承父类的方法 银行这边的参数也不需要修改
System.out.println("欢迎"+person.getName()+"来我们银行办理业务");
person.callNum();
person.setBusiness();
person.leave();
}
}
public class RunMain {
public static void main(String[] args){
Bank bank = new Bank();
Person p = new OldMan("老人家");
bank.handleBusiness(p);
Person p1 = new YongMan("年轻人");
bank.handleBusiness(p1);
}
}