首页 > 代码库 > java之对象转型

java之对象转型

对象转型(casting)

1、一个基类的引用类型变量可以“指向”其子类的对象。

2、一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)。

3、可以使用 引用变量 instanceof 类名 来判断该引用型变量所“指向”的对象是否属于该类或该类的子类。

4、子类的对象可以当做基类的对象来使用称作向上转型(upcasting),反之成为向下转型(downcasting)。

 

public class TestCasting{    public static void main(String args[]){        Animal animal = new Animal("name");        Cat cat = new Cat("catName","blueColor");        Dog dog = new Dog("dogName","yellowColor");                System.out.println(animal instanceof Animal);        System.out.println(cat instanceof Animal);        System.out.println(dog instanceof Animal);        //System.out.println(animal instanceof cat);   //error                animal = new Dog("dogAnimal","dogColor");        System.out.println(animal.name);        //System.out.println(animal.forColor);  //error        System.out.println(animal instanceof Animal);        System.out.println(animal instanceof Dog);        Dog d1 = (Dog)animal;        System.out.println(d1.forColor);     }}class Animal{    public String name;    public Animal(String name){             this.name = name;    }}class Cat extends Animal{    public String eyeColor;    public Cat(String name, String eyeColor){        super(name);        this.eyeColor = eyeColor;    }}class Dog extends Animal{    public String forColor;    public Dog(String name, String forColor){        super(name);        this.forColor = forColor;    }}

运行结果:

java之对象转型