在 Java 中我们可以有(假设额外的构造方法等):
class Car
{
public void Vrooom() { System.out.print("Vrooom!"); }
}
class Prius extends Car
{
public void Vrooom() { System.out.print("..."); }
}
class Cars extends Car
{
private ArrayList<Car> mCars;
public void Vrooom() { for(Car car: mCars) car.Vrooom(); }
}
我遇到过这样的代码,但Cars
我觉得不对,因为它必须覆盖每一个Car
方法来添加for
循环。这是一种反模式吗?如果是,我为什么不这样做?