java多态转型有哪些实现方式?
时间: 2024-02-11 14:05:01 浏览: 89
Java中实现多态转型有以下两种方式:
1. 向上转型
向上转型指的是将子类对象赋值给父类引用变量,这样父类变量就可以引用子类对象。可以通过这种方式实现多态特性,即同一个方法调用不同的子类对象,可以产生不同的结果。向上转型通常发生在方法参数传递和方法返回值上,可以提高代码的灵活性和可扩展性。
示例代码:
```
class Animal {
public void eat() {
System.out.println("Animal is eating.");
}
}
class Dog extends Animal {
public void eat() {
System.out.println("Dog is eating.");
}
}
public class Test {
public static void main(String[] args) {
Animal animal = new Dog(); // 向上转型
animal.eat(); // 调用的是Dog类的eat方法
}
}
```
2. 向下转型
向下转型指的是将父类对象转换为子类对象,需要使用强制类型转换符(cast)进行转换。但是需要注意的是,如果父类对象不是子类对象的实例,就会抛出ClassCastException异常。因此,在进行向下转型时,需要先进行类型判断,以避免类型转换异常的发生。
示例代码:
```
class Animal {
public void eat() {
System.out.println("Animal is eating.");
}
}
class Dog extends Animal {
public void eat() {
System.out.println("Dog is eating.");
}
public void bark() {
System.out.println("Dog is barking.");
}
}
public class Test {
public static void main(String[] args) {
Animal animal = new Dog(); // 向上转型
if (animal instanceof Dog) { // 类型判断
Dog dog = (Dog) animal; // 向下转型
dog.bark(); // 调用Dog类特有的方法
}
}
}
```
阅读全文