写一段java代码,按传入的class类型创建对象并赋值,然后返回对象,该对象继承自一个抽象类,
时间: 2024-05-02 12:22:03 浏览: 11
假设抽象类为Animal,代码如下:
```java
public abstract class Animal {
protected String name;
public abstract void makeSound();
}
public class Dog extends Animal {
public Dog(String name) {
this.name = name;
}
@Override
public void makeSound() {
System.out.println("Woof!");
}
}
public class Cat extends Animal {
public Cat(String name) {
this.name = name;
}
@Override
public void makeSound() {
System.out.println("Meow!");
}
}
public class AnimalFactory {
public static Animal createAnimal(String animalType, String name) {
Animal animal = null;
if (animalType.equalsIgnoreCase("dog")) {
animal = new Dog(name);
} else if (animalType.equalsIgnoreCase("cat")) {
animal = new Cat(name);
}
return animal;
}
}
```
使用方法:
```java
Animal dog = AnimalFactory.createAnimal("dog", "Fido");
dog.makeSound(); // Output: Woof!
Animal cat = AnimalFactory.createAnimal("cat", "Whiskers");
cat.makeSound(); // Output: Meow!
```