避免使用向下转型和反射的模式,我们可以采用以下解决方法:
示例代码:
public abstract class Animal {
public abstract void sound();
}
public class Dog extends Animal {
@Override
public void sound() {
System.out.println("Woof");
}
}
public class Cat extends Animal {
@Override
public void sound() {
System.out.println("Meow");
}
}
public class Main {
public static void main(String[] args) {
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.sound(); // Output: Woof
animal2.sound(); // Output: Meow
}
}
示例代码:
public abstract class Animal {
public abstract void sound();
}
public class Dog extends Animal {
@Override
public void sound() {
System.out.println("Woof");
}
}
public class Cat extends Animal {
@Override
public void sound() {
System.out.println("Meow");
}
}
public class AnimalFactory {
public static Animal createAnimal(String type) {
if (type.equalsIgnoreCase("dog")) {
return new Dog();
} else if (type.equalsIgnoreCase("cat")) {
return new Cat();
}
return null;
}
}
public class Main {
public static void main(String[] args) {
Animal animal1 = AnimalFactory.createAnimal("dog");
Animal animal2 = AnimalFactory.createAnimal("cat");
animal1.sound(); // Output: Woof
animal2.sound(); // Output: Meow
}
}
通过使用多态和工厂模式,可以避免使用向下转型和反射的模式,提高代码的可读性和可维护性。
上一篇:避免使用相同IP进行多次购买