假设我们要创建一组动物,显然的,我们会设计一个父类Animal。
在Animal类中,我们可以设置一些基本的属性,比如样貌、颜色、所处地等,也可以预设一些行为(方法),比如叫()、跑()、睡觉()等。
这样,当我们使用具体的类(比如狗狗类)来继承动物类时,我们就会自动拥有这些属性和行为。
动物这个概念是抽象的,如果直接实例化一个动物,我们并不知道它的样貌、颜色,更不知道它怎么叫、怎么睡觉...
你看,有的东西是无法被实例化的,它在我们日常生活中本就是一个抽象的概念。
再举个例子,人这个类,只谈到人,不谈到某个具体的对象,你根本不能知道他具体的内容。
人的名字是什么?样子是什么样?不带入某个具体的对象时,这些都无法回答。
我们理解世界时的认知就是这样,在代码的世界中,道理也是想通的。
让我来给你总结一下:
有的东西是必须要具化的,它的属性和行为在没有特定运行时时是没有任何意义的,描述这种事物的类就叫抽象类。
abstract
//todo下次再写
以职责链模式为例,我们一般都是先创建一个
//todo下次再写
致命方块问题
//todo下次再写