多态解释
定义为一个父类,各子类中都重写了父类的方法,在方法中用传入的父类对象调用这个方法。当传入什么子类时就会调用相应的各子类的方法。这就是多态。
测试代码
public class Human {
public void say() {
System.out.println("d!#$@#%@$%$@");
}
}
public class Chinese extends Human {
public void say() {
System.out.println("我是中国人");
}
}
public class Britons extends Human {
public void say() {
System.out.println( "I'm British.");
}
}
public class Test {
public static void main(String[] args) {
Human human1 = new Chinese();
Human human2 = new Britons();
human1.say();
human2.say();
}
}
测试结果
我们会发现 human1和human2 都是上转型对象,Human类中也有say()方法但是在执行的时候并不是执行Human类中的方法,此时执行的是子类的方法,这就发生了多态的现象。
若我们将Britons中的say方法消去
在分析Test类中的执行结果
此时子类中没有重写父类中的say方法,所以此时没有发生多态