java之多态(Polymorphic)、动态绑定(Dynamic Binding)、迟绑定(Late Binding)
2014-10-19 16:58
375 查看
今天,我们来说说java面向对象最核心的东西,多态。通过多态可以使我们的程序可复用性达到极致,这就是我们为什么要学多态的原因。
“多态”(Polymorphic)也叫“动态绑定”(Dynamic Binding)同时也叫“迟绑定”(Late Binding)。
动态绑定是指“在执行期间(而非编译期间)判断所引用对象的实际类型,根据其实际类型调用其相应的方法。”
程序代码:
程序运行结果:
总结:通过以上示例,我们发现多态必备的三个条件1、有继承2、有重写3、父类引用指向子类对象
“多态”(Polymorphic)也叫“动态绑定”(Dynamic Binding)同时也叫“迟绑定”(Late Binding)。
动态绑定是指“在执行期间(而非编译期间)判断所引用对象的实际类型,根据其实际类型调用其相应的方法。”
程序代码:
public class TestPolymorphic{ public static void main(String args[]){ Animal animal = new Animal("animal"); Cat cat = new Cat("cat","blue"); Dog dog = new Dog("dog","black"); Lily l1 = new Lily("l1",animal); Lily l2 = new Lily("l1",dog); l1.myAnimalEnjoy(); l2.myAnimalEnjoy(); } } class Lily{ private String name; private Animal animal; public Lily(String name, Animal animal){ this.name = name; this.animal = animal; } public void myAnimalEnjoy(){ animal.enjoy(); } } class Animal{ private String name; public Animal(String name){ this.name = name; } public void enjoy(){ System.out.println("叫声~~~"); } } class Dog extends Animal{ private String forlorColor; public Dog(String name,String forlorColor){ super(name); this.forlorColor = forlorColor; } public void enjoy(){ System.out.println("dog叫声~~~"); } } class Cat extends Animal{ private String eyesColor; public Cat(String name,String eyesColor){ super(name); this.eyesColor = eyesColor; } public void enjoy(){ System.out.println("cat叫声~~~"); } }
程序运行结果:
总结:通过以上示例,我们发现多态必备的三个条件1、有继承2、有重写3、父类引用指向子类对象
相关文章推荐
- Java中的重载、重写、多态,静态绑定、动态绑定
- java中转型(upcasting)与动态绑定(dynamic binding)或者后期(late binding)细节
- Java 动态绑定(多态)和静态绑定,隐藏
- java中转型(upcasting)与动态绑定(dynamic binding)或者后期(late binding)细节
- Java中的重载、重写、多态,静态绑定、动态绑定
- Java的多态(静态绑定和动态绑定)
- Java中的多态(polymorphism)和动态绑定(dynamic binding)
- JAVA笔记9-多态(动态绑定、池绑定)
- JAVA中的静态绑定和动态绑定
- JAVA中几个易混淆关键词的理解:行为,隐藏,组合和继承,覆写和重载,多形(多态)性,动态绑定,上溯造型,抽象类,接口
- JAVA核心技术 第五章 继承 类、超类、子类 关键字this super 多态 动态绑定
- Polymorphic Java Override and Overloading, 多态,对象的重载与覆盖
- java动态绑定和多态
- Java面试系列【动态绑定、静态绑定】-动态绑定,基础篇
- 《Thinking in Java》 学习笔记---多态?晚绑定。
- Java多态与动态绑定
- java多态与动态绑定例子
- java运行时多态,后期绑定的初始化顺序
- 动态绑定(也叫多态或迟绑定)
- objective-c学习笔记第六章《objective-c 多态,动态类型,动态绑定与java中的区别》