您的位置:首页 > 其它

向上转型和向下转型

2016-07-13 10:40 197 查看
例如我现在有两个类,他们之间是继承的关系:

class Animal {
void eat () {
System.out.println("Animal eat...");
}
}

class Dog extends Animal {

@Override
void eat() {
System.out.println("Dog eat");
}

void bark() {
System.out.println("Dog bark");
}

}


通俗地讲,向上转型就是把子类的对象转化为父类的对象,如:

Animal animal = new Dog();

但是注意,向上转型后,父类只能访问与子类共有的方法,如以下代码就会出现编译错误:

animal.bark(); //出错

向下转型则需要强制类型转换:

Animal animal = new Dog();

Dog dog = (Dog) animal;

总的来说,向上转型总是安全的,向下转型则未必,可能会发生ClassCastException.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: