3 回答
已采纳
望远
TA贡献1017条经验 获得超1032个赞
多态分为静态多态--在运行前就已经确定要执行的代码块,体现在代码中就是方法的重载;
public class Test{ public void say(){ System.out.println("Hello World"); } public void say(String s){ System.out.println(s); } public static void main(String[] args){ new Test().say();//在运行前确定了要执行的代码块 //new Test().say("Hello World"); } }
动态多态--在运行前无法确定要执行的代码块具体是什么,体现在代码中就是接口回调和父类对象引用指向子类对象
public class Animal{ public void say(){ System.out.println("动物会叫"); } } class Dog extends Animal{ public void say(){ System.out.println("汪汪汪~~"); } } class Snake extends Animal{ public void say(){ System.out.println("嘶嘶嘶~~"); } } class Test{ public void test(Animal animal){ animal.say(); } public static void main(){ new Test().test(new Animal());//输出动物会叫 //new Test().test(new Dog());//多态,输出汪汪汪 //new Test().test(new Snake());//多态,输出嘶嘶嘶 } }
添加回答
举报
0/150
提交
取消