关于Java抽象类的理解

Java抽象类,可以包含抽象方法和非抽象方法,而接口只能包含抽象方法。

抽象类属于既有骨架(抽象方法),也有血肉(非抽象方法)的概念。所以我认为抽象类的使用情景应该是这样:如果有这么一类事物,他们有很多共同的行为(方法),其中有一部分的具体行为(方法具体操作)是一摸一样的,有其他一些行为的具体实现不一样,那么可以将此类事物抽象出一个抽象类,将行为一样的方法置为非抽象方法,行为不一样的置为抽象方法,这些抽象方法的具体实现在具体的类中去做。

就比如汽车分为自动挡汽车和手动挡汽车,他们在按喇叭、使用雨刷等方面的操作是一样的,而启动汽车、换挡等方面是不一样的,那么可以抽象出一个汽车类,将按喇叭、使用雨刷放在汽车抽象类的非抽象方法,将启动汽车、换挡由具体的手动挡或则自动挡类中去实现。

那么这样,汽车中的相同操作就可以复用起来,同时又允许了可以实现不同的具体操作。

原文地址:https://www.cnblogs.com/zhihow/p/10064789.html