假设我们有这个类
动物.java
public class Animal {
private String name;
public Animal(String name) {
this.name = name;
}
public void shout() {
/* must be override */
}
public String getName() {
return name;
}
}
驱动程序.java
import java.util.ArrayList;
import java.util.List;
public class Driver {
public static void main(String[] args) {
List<Animal> animals = new ArrayList<Animal>();
animals.add(new Animal("Dog") {
@Override
public void shout() {
System.out.println(getName() + " sounds like: woof woof woof");
}
});
animals.add(new Animal("Cat") {
@Override
public void shout() {
System.out.println(getName() + " sounds like: meow meow meow-ow");
}
});
for(Animal a : animals)
a.shout();
}
}
我怎样才能让我实现方法喊()或任何其他程序员?假设没有理由将 Animal 类抽象化,并为 Dog、Cat 等创建一个扩展 Animal 的类
有设计模式吗?