Java多态举例

来源:互联网 发布:ubuntu amd 编辑:程序博客网 时间:2024/06/03 22:50
/*时间:2014年12月7日16:30:46功能:多态(Polymorphism),又叫动态绑定【根据实际类型调用(而非引用类型)】好处:可扩展性达到最好*/class Animal {private String name;Animal(String name) {this.name = name;}public void enjoy() {System.out.println("叫声……");}}class Cat extends Animal {//private String name; //为啥总爱写这句呢?private String eyeColor;Cat(String n, String c) {super(n);eyeColor = c;}public void enjoy() {System.out.println("猫叫声……");}}class Dog extends Animal {//private String name; //同 Cat 类private String furColor;Dog(String n, String c) {super(n);furColor = c;}public void enjoy() {System.out.println("狗叫声……");}}/*class Bird extends Animal {Bird() {super("bird");}public void enjoy() {System.out.println("鸟叫声……");}}*/class Lady {private String name;private Animal pet;//pet 的类型是 Animal类(引用类型)Lady(String name, Animal pet) {this.name = name;this.pet = pet;}public void myPetEnjoy() {pet.enjoy();}}public class TestPolymorphism {//画内存分配public static void main(String[] args) {Cat c = new Cat("BigYellow", "yellow");Dog d = new Dog("Awang", "black");//Bird b = new Bird();Lady l1 = new Lady("L1", c);//根据实际类型调用(而非引用类型)Lady l2 = new Lady("L2", d);//Lady l3 = new Lady("L3", b);l1.myPetEnjoy();l2.myPetEnjoy();//l3.myPetEnjoy();}}/***********************输出结果:猫叫声……狗叫声……*************************/

0 0
原创粉丝点击