首页 > 其他 > 详细

类型转换和多态

时间:2017-12-13 01:31:50      阅读:375      评论:0      收藏:0      [点我收藏+]

类型转换和多态(也叫动态绑定)

函数在运行过程中,根据实际的对象类型,自动选取对应对象的方法。

class Animal {

  private String name;

  Animal(String name) {this.name = name;}

  public  void enjoy(){

  System.out.println("动物叫声......");

  }

}

 

class Dog extends Animal {

  private String furColor;

  Dog(String n,String c) {super(n); furColor = c;}

  public void enjoy() {

    System.out.println("狗叫声......");

  }

}

 

class Cat extends Animal {

  private String furColor;

  Cat(String n,String c) {super(n); furColor = c;}

  public void enjoy() {

    System.out.println("猫叫声......");

  }

}

 

class Lady {

    private String name;

    private Animal pet;  //定义一个父类的引用对象,方便函数的扩展

    Lady(String name,Animal pet) {

        this.name = name; this.pet = pet;

    }

    public void myPetEnjoy(){pet.enjoy();}

}

 

public class Test {

public static void main(String args[]){

Animal a = new Cat("Catname","blue");

        Dog d = new Dog("dogname","black");

Cat e = (Cat) a;  // 强制类型转换,不强转换不能输出 a.furColor,其他都可以

        Lady l2 = new Lady("l2",d);

        l2.myPetEnjoy();  //“狗叫声……”

Lady l3 = new Lady("34",e);

        l2.myPetEnjoy();  //“猫叫声……”

    }

}

类型转换和多态

原文:http://www.cnblogs.com/yahutiaotiao/p/8030319.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!