要理解抽象类的意义,我觉得用联想的方法会比较容易理解,举例:猪牛马都有一套消化系统,消化的步骤都是先咀嚼再胃液消化,咀嚼的方式也都是一样的,所以在抽象类中直接定义好消化的过程以及咀嚼的方法,这样就可限定子类方法的调用顺序,以及避免重复编写代码,同样的因为胃液的消化过程不一样,所以将胃液的消化过程抽象化放到子类实现
public abstract class DigestiveSystem { /** * 消化食物的过程 先咀嚼后胃液消化 */ public void digestiveFood(){ chaw(); gastrin(); } //咀嚼方法 public void chaw(){ //把食物嚼烂 //猪牛马嚼东西的方式都一样,所以把咀嚼的方法直接在这里实现,可以减少代码的重复 } /** * 胃消化功能 * 不同动物的胃 消化食物的方式是不一样的 所以需要放到具体的类中实现 */ public abstract void gastrin(); }