public class TestCasting{ |
public static void main(String args[]){ |
Animal a = new Animal( "a" ); |
Cat c = new Cat( "c" , "cEyesColor" ); |
Dog d = new Dog( "d" , "dForlorColor" ); |
|
System.out.println(a instanceof Animal); //true |
System.out.println(c instanceof Animal); //true |
System.out.println(d instanceof Animal); //true |
System.out.println(a instanceof Dog); //false |
|
a = new Dog( "d2" , "d2ForlorColor" ); //父类引用指向子类对象,向上转型 |
System.out.println(a.name); //可以访问 |
//System.out.println(a.folorColor); //!error 不可以访问超出Animal自身的任何属性 |
System.out.println(a instanceof Animal); //是一只动物 |
System.out.println(a instanceof Dog); //是一只狗,但是不能访问狗里面的属性 |
|
Dog d2 = (Dog)a; //强制转换 |
System.out.println(d2.folorColor); //将a强制转换之后,就可以访问狗里面的属性了 |
} |
} |
class Animal{ |
public String name; |
public Animal(String name){ |
this .name = name; |
} |
} |
class Dog extends Animal{ |
public String folorColor; |
public Dog(String name,String folorColor){ |
super (name); |
this .folorColor = folorColor; |
} |
} |
class Cat extends Animal{ |
public String eyesColor; |
public Cat(String name,String eyesColor){ |
super (name); |
this .eyesColor = eyesColor; |
} |
} |
初级程序员
by: 永远的希望 发表于:2016-07-06 14:23:45 顶(0) | 踩(0) 回复
谢谢分享
回复评论