这里先简单说一下几个重要原理
1)JAVA 里面的 protected 访问控制是一种神奇的访问约束,我把它理解为“子孙范围”,也就是子孙都可以访问,哪怕是出了所在的包。(包访问范围肯定是可以,这里不强调而已。)
2)super关键字对直接父类的方法调用。
3)this关键字写在代码里面,当子类调用同一段代码时,this是子类的实例,而不是父类的实例。也就是说this是具有“多态”效果的。
也即this在编译时是不知道实例对象是谁,而是运行时根据对象自动识别。
4)父类可以通过在代码中 用 instanceof 关键字来约束 未来的子类 必须实现某接口。 这也是关键的一点。