多态


首先,多态存在的三个必要条件
一、要有继承;
二、要有重写;
三、父类引用指向子类对象。
多态引用类型有两种方式:
a. 编译时多态:方法的重载;
b. 运行时多态:JAVA运行时系统根据调用该方法的实例的类型来决定选择调用哪个方法则被称为运行时多态。(我们平时说得多的事运行时多态,所以多态主要也是指运行时多态);

package com.ww.teacher;

public class Teacher {
    public void teach(){
        System.out.println("教书.......");
    }
}


package com.ww.teacher;

public class ChineseTeacher extends Teacher{
    public void teach(){
        System.out.println("教语文.........");
        
    }
}

package com.ww.teacher;

public class EnglishTeacher extends Teacher{
    
}

package com.ww.teacher;

public class MathTeacher extends Teacher{
    public void teach(){
        System.out.println("教数学............");
    }
}

排课操作类

package com.ww.teacher;

public class Director {
    //排课方法   
    public void order(Teacher t){//迟绑定   不知道调用哪个老师  多态  
        t.teach();
    }
}

测试

package com.ww.teacher;

public class Test {
    public static void main(String[] args) {
        Director director=new Director();
        Teacher t=new MathTeacher();//new谁就调用谁
        director.order(t);
        /*
         * 多态可拓展性
         */
        t=new ChineseTeacher();
        director.order(t);  
        t=new EnglishTeacher();
        director.order(t);
    }
}