可以使用泛型来解决这个问题。首先定义一个抽象类,并让子类继承它,然后在实例化时使用泛型来指定子类类型。
例如,定义一个抽象类Animal:
public abstract class Animal {
public abstract void makeSound();
}
然后,定义一个子类Cat:
public class Cat extends Animal {
public void makeSound() {
System.out.println("Meow");
}
}
使用泛型来实例化:
Cat cat = new Cat();
Animal animal = cat; // Upcasting
Cat cat2 = (Cat) animal; // Downcasting
以上代码可以保证在进行类型转换时不会出现ClassCastException的异常。
上一篇:保持持久连接并在需要时推送事件