是指在一个数组列表中存储了不同子类的对象,然后通过父类的引用调用子类特有的方法。
在Java中,可以使用数组列表(ArrayList)来存储对象。数组列表是一种动态数组,可以根据需要自动调整大小。当数组列表中存储的对象是子类对象时,可以通过父类的引用来调用子类特有的方法。
假设有一个父类Animal和两个子类Dog和Cat,我们可以创建一个数组列表来存储这些对象:
ArrayList<Animal> animals = new ArrayList<>();
animals.add(new Dog());
animals.add(new Cat());
现在,我们可以通过父类Animal的引用来调用子类特有的方法。例如,如果Dog类有一个特有的方法bark(),我们可以这样调用:
((Dog) animals.get(0)).bark();
这里使用了类型转换将父类引用转换为子类引用,然后调用子类特有的方法。
需要注意的是,使用父类引用调用子类特有的方法需要确保数组列表中存储的对象确实是子类对象,否则会在运行时抛出ClassCastException异常。可以使用instanceof运算符来检查对象的类型:
if (animals.get(0) instanceof Dog) {
((Dog) animals.get(0)).bark();
}
这样可以在调用之前先检查对象的类型,避免出现异常。
总结:
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云