假设有一个Dog类如下
public class Dog {public void bark() {barkMany(1);}public void barkMany(int N) {for (int i = 0; i < N; i += 1) {System.out.println("bark");}}}
如果调用bark(),会执行barkmany(1)
假设现在有一个类VerboseDog继承Dog类。
class VerboseDog extends Dog {@Overridepublic void barkMany(int N) {System.out.println("As a verbose dog, I say: ");for (int i = 0; i < N; i++) {bark();}}}
如果调用VerboseDog类实例的barkMany()方法。会陷入死循环。
原因是继承破坏了封装性。
