Java 父类能否返回子类的
时间: 2023-08-08 07:09:02 浏览: 92
在父类获取子类属性
在 Java 中,父类可以返回子类的对象。这种技术被称为工厂方法模式,它允许在运行时动态创建对象,而无需在编译时指定确切的类。
具体来说,在父类中定义一个工厂方法,该方法返回一个子类对象。子类必须实现该工厂方法并返回其自身的实例。在客户端代码中,可以调用父类的工厂方法来获取一个子类对象,而无需直接实例化子类。
以下是一个示例代码:
```java
class Animal {
public static Animal createAnimal(String type) {
if (type.equals("cat")) {
return new Cat();
} else if (type.equals("dog")) {
return new Dog();
} else {
throw new IllegalArgumentException("Invalid animal type");
}
}
}
class Cat extends Animal {
// ...
}
class Dog extends Animal {
// ...
}
class Main {
public static void main(String[] args) {
Animal animal = Animal.createAnimal("cat");
// animal 是一个 Cat 类型的对象
}
}
```
在上面的示例代码中,Animal 类中定义了一个静态的工厂方法 createAnimal,该方法根据传入的字符串参数返回一个 Animal 子类的实例。Cat 类和 Dog 类都继承了 Animal 类,并实现了 createAnimal 方法,分别返回自身的实例。在主函数中,调用 Animal.createAnimal 方法,传入参数 "cat",返回一个 Cat 类型的对象。
阅读全文