①可以增强代码的健壮性。只管按照父类的设计进行操作,不管具体是什么样的子类,将来这个子类用着不舒服了,换一个就行,不影响原来的代码,这样代码维护起来更加容易。
示例代码:
class Car {
void run () {}
}
class BMW extends Car{}
class Benz extends Car{}
实现的时候:
Car car = new BMW();
Car.run();
若new BMW()不合适,可以换成new Benz(),完全不影响别的代码。在框架设计上更是大有作为。
②简单的说:就是父类定义通用的属性和方法,多个子类实现可以省去这些公用代码,省事许多!而且,将来如果对这些通用的属性、方法有何更改,只需修改父类即可,维护起来就是比较方便、快捷和准确。
③可以解耦合,比如需要一个List类,可以实例化:
ArrayList list = new ArrayList();
也可以:
List list = new ArrayList().
若现在的需求是ArrayList已经无法满足,需要更换为LinkedList,如果按照第一种写法,那么你需要做的工作可能比较多,除了修改list的类型,还要考虑的是你换成LinkedList的时候,你之前用ArrayList所调用的方法,LinkedList是否拥有,这无形中增加了许多工作量。
如果按照第二种写法来实现,那么只需改成List list = new LinkedList()即可,无须担心之前所调用的方法。