Java 多态
来源:互联网 发布:隐形眼镜掉在地上 知乎 编辑:程序博客网 时间:2024/06/14 09:19
多态,又叫动态绑定,是指程序在执行期间(而非编译期间),判断所引用的对象的实际类型,根据其实际的类型调用其相应的方法.
多态存在有三个必要的条件:
1. 有继承
2. 有重写
3. 父类引用指向子类对象
举个例子来说,有个父类 Animal,代码如下:
package com.poly;public class Animal {private String name;Animal(String name){this.name = name;}public void enjoy(){System.out.println("Animal enjoy...");}}
他有一个子类,Cat
package com.poly;public class Cat extends Animal{private String eyeColor;Cat(String name,String eyeColor){super(name);this.eyeColor = eyeColor;}public void enjoy(){System.out.println("Cat's enjoy...");}}
他还有另外一个子类, Dog
package com.poly;public class Dog extends Animal {private String furColor;Dog(String name,String furColor){super(name);this.furColor = furColor;}public void enjoy(){System.out.println("Dog's enjoy...");}}
现在有一个类,Lady,他的成员变量里面有Animal
package com.poly;public class Lady {private String name;private Animal pet;public Lady(String name,Animal pet){this.name = name;this.pet = pet;}public void myPetEnjoy(){pet.enjoy();}}
现在我们测试一下,
package com.poly;public class Test {public static void main(String[] args){String name1 = "Grace";String name2 = "Lucy";Dog d = new Dog("Dog","yellow");Cat c = new Cat("Cat","blue");Lady l1 = new Lady(name1,c);Lady l2 = new Lady(name2,d);l1.myPetEnjoy();// cat's enjoyl2.myPetEnjoy();// dog's enjoy}}
此处打印出来的应该是:
Cat's enjoy...
Dog's enjoy...
这个就是多态的最简单的应用。多态可以提高程序的健壮性和可扩展性。
0 0
- Java学习 java -- 多态
- java多态
- java多态
- java多态
- java多态
- Java多态
- java多态
- JAVA@多态
- Java多态
- java 多态
- Java多态
- java多态
- [Java] 多态
- JAVA多态
- Java多态
- java多态
- java 多态
- java多态
- Cocos2d
- eclipse 调试远程tomcat
- Java应用程序编程
- shell脚本之从用户读取输入并进行验证
- SqlServer还原数据库时,提示无法获得对数据库的独占访问权 的错误解决方法
- Java 多态
- Joomla微博推广
- Climbing Stairs
- iPhone 5即将基于NFC的苹果产品
- IPraxa不断升级你的职业生涯有实际的培训
- UVA 10596 - Morning Walk
- iPad的必备技巧
- jquery点击空白处隐藏div
- 常用设计模式的应用场景