java多态性向上转型和向下转型案列
时间: 2024-11-17 21:07:53 浏览: 28
Java的多态性是指同一种类型的对象在不同的情况下呈现出不同的状态和行为。向上转型和向下转型是Java多态性的两种体现方式。
向上转型是指将一个子类对象转换成父类对象,这样可以使得子类对象在某些场合下可以作为父类对象使用,具有更高的通用性。例如:
```
class Animal{
public void eat(){
System.out.println("Animal eats.");
}
}
class Dog extends Animal{
public void eat(){
System.out.println("Dog eats meat.");
}
public void bark(){
System.out.println("Dog barks.");
}
}
public class Test{
public static void main(String[] args){
Animal animal = new Dog(); //向上转型
animal.eat(); //输出 "Dog eats meat."
//animal.bark(); //编译错误,不能调用子类特有的方法
}
}
```
向下转型是指将一个父类对象强制转换成子类对象,这样可以让父类对象具备子类对象的特性,但是如果不小心转换失败就会导致程序运行时错误。例如:
```
class Animal{
public void eat(){
System.out.println("Animal eats.");
}
}
class Dog extends Animal{
public void eat(){
System.out.println("Dog eats meat.");
}
public void bark(){
System.out.println("Dog barks.");
}
}
public class Test{
public static void main(String[] args){
Animal animal = new Dog(); //向上转型
if(animal instanceof Dog){ //判断是否可以向下转型
Dog dog = (Dog)animal; //向下转型
dog.bark(); //输出 "Dog barks."
}
}
}
```
阅读全文