Java 多态

多态,又叫动态绑定,是指程序在执行期间(而非编译期间),判断所引用的对象的实际类型,根据其实际的类型调用其相应的方法.

多态存在有三个必要的条件:

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…

这个就是多态的最简单的应用。多态可以提高程序的健壮性和可扩展性。

别人失去了信心,他却下决心实现自己的目标。

Java 多态

相关文章:

你感兴趣的文章:

标签云: