今日聚焦抽象类与抽象方法的学习,核心目标是厘清其定义、规则及设计逻辑,而非仅记忆语法格式。整个学习过程以“问题-规则-应用”为线索,逐步建立对这两个概念的理性认知。
首先,明确抽象类的本质属性:它是包含抽象方法的类,且无法被实例化,这是与普通类最核心的区别。课堂案例中,“Vehicle”抽象类定义了“run()”抽象方法,却不实现具体逻辑,这一设计的关键目的在于“约束子类行为”——所有继承Vehicle的子类(如Car、Bike)必须重写run(),确保同类对象具备统一的核心功能接口,从设计层面避免了子类功能混乱的问题。
其次,通过代码实践验证了抽象方法的特性:无方法体、必须存在于抽象类中、子类必须重写(除非子类也为抽象类)。此前曾尝试在普通类中定义抽象方法,编译器直接报错,这一反馈帮助我强化了“抽象方法与抽象类的绑定关系”——二者是“规则与载体”的关系,缺少任一环节,抽象化的约束意义便无法成立。
当需要定义一组具有共性但具体实现不同的类(如“水果”与“苹果、香蕉”),且需强制子类实现共性方法时,抽象化设计是最优选择。它的价值不在于“实现功能”,而在于“建立规范”,为后续代码的扩展、维护提供清晰的结构框架。后续计划通过设计“电器-冰箱、电视”的类结构,进一步巩固抽象化思维在实际编程中的应用。