class A{}
class B extends A{}
A a = new B();
B类继承A类,那么A a = new B(); 比 B b = new B(); 的好处在哪里?
B b = new B(); b可以调用
1)A类的没有被子类覆盖的方法
2)A类被子类覆盖的方法
3)B类特有的方法
而A a = new B();只可以调用 1和2,那么不直接用 B b = new B()呢 ?
有人说这是因为多态的特性,没错。但是我们也要看代码的使用环境。
B继承与A,你在做开发写代码的时候,需要考虑
1、B类那些对象可以不需要扩展,不需要使用自己的非继承覆盖方法时,你就可以直接使用 A a=new B();
2、当你那些对象在以后功能的实现时需要扩展时功能时,你则可以使用B b=new B(),这样就可以让你在以后维护代码的时候,也就是扩展时,能够更方便,更清晰!