[Java] java对象转型 →→→→→进入此内容的聊天室

来自 , 2019-06-14, 写在 Java, 查看 109 次.
URL http://www.code666.cn/view/3546ab44
  1. public class TestCasting{
  2.     public static void main(String args[]){
  3.         Animal a = new Animal("a");
  4.         Cat c = new Cat("c","cEyesColor");
  5.         Dog d = new Dog("d","dForlorColor");
  6.        
  7.         System.out.println(a instanceof Animal);    //true
  8.         System.out.println(c instanceof Animal);    //true
  9.         System.out.println(d instanceof Animal);    //true
  10.         System.out.println(a instanceof Dog);        //false
  11.        
  12.         a = new Dog("d2","d2ForlorColor");        //父类引用指向子类对象,向上转型
  13.         System.out.println(a.name);                //可以访问
  14.         //System.out.println(a.folorColor);   //!error   不可以访问超出Animal自身的任何属性
  15.         System.out.println(a instanceof Animal);    //是一只动物
  16.         System.out.println(a instanceof Dog);        //是一只狗,但是不能访问狗里面的属性
  17.        
  18.         Dog d2 = (Dog)a;    //强制转换
  19.         System.out.println(d2.folorColor);    //将a强制转换之后,就可以访问狗里面的属性了
  20.     }
  21. }
  22. class Animal{
  23.     public String name;
  24.     public Animal(String name){
  25.         this.name = name;
  26.     }
  27. }
  28. class Dog extends Animal{
  29.     public String folorColor;
  30.     public Dog(String name,String folorColor){
  31.         super(name);
  32.         this.folorColor = folorColor;
  33.     }
  34. }
  35. class Cat extends Animal{
  36.     public String eyesColor;
  37.     public Cat(String name,String eyesColor){
  38.         super(name);
  39.         this.eyesColor = eyesColor;
  40.     }
  41. }

回复 "java对象转型"

这儿你可以回复上面这条便签

captcha