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