2026.8.3
(1) 今日学习 Java 多态、抽象类以及接口入门知识;
多态
一、多态中调用成员特点
父类引用指向子类对象,即多态创建对象,属于自动向上类型转换(由小变大)
调用成员变量:编译看左边,运行也看左边
编译阶段检查左侧父类是否存在该变量;运行时使用父类的成员变量值,最终输出父类变量内容。
调用成员方法:编译看左边,运行看右边
编译阶段检查左侧父类是否存在该方法;运行时执行子类重写后的方法,前提是子类完成方法重写覆盖。
二、优势
方法参数使用父类类型,可以接收该父类下所有子类对象,提升代码通用性。
三、弊端
通过多态方式创建的父类引用,无法直接调用子类独有的功能。
原因:编译只识别左侧父类,找不到子类特有方法;解决方案:向下强制类型转换。
不能随意强制转换类型,容易引发异常;转换前使用 instanceof 判断对象真实类型,返回布尔值。
新版写法可在判断时直接完成类型接收。
示例:Animal、Dog、Cat、Person
Dog、Cat 类继承 Animal 父类,子类通过 super 调用父类构造方法。
子类重写父类 eat 方法,使用 @Override 注解标识重写。
Dog、Cat 各自拥有独有的成员方法,属于子类特有功能。
饲养员 Person 类定义方法,形参为 Animal 类型(运用多态);方法内部利用 instanceof 区分具体动物类型,执行对应逻辑。
抽象类和抽象方法
使用 abstract 定义抽象类、抽象方法;含有抽象方法的类,必须是抽象类;抽象类不一定包含抽象方法。
抽象类不能直接实例化创建对象。
抽象类允许存在普通成员方法、构造方法;构造方法供子类创建对象时,通过 super 完成父类初始化赋值。
继承抽象类的子类规则:
普通实体子类,必须重写父类全部抽象方法;
如果子类本身也定义为抽象类,则可以不重写抽象方法。
接口
核心区分:抽象类侧重于描述事物本身;接口侧重于描述拓展行为 / 能力
继承与实现:类使用 extends 继承抽象类,使用 implements 实现接口;一个类可以继承一个父类,同时实现多个接口。
只有实现接口的类,才能拥有接口定义的行为方法;未实现接口的类,无法调用该接口中的方法。
案例:
抽象类 Animal 定义动物通用属性与 eat 行为;
Swim 作为游泳能力接口;
青蛙、小狗实现 Swim 接口,拥有游泳行为;兔子仅继承 Animal,不能游泳。





同步完成萌创相关内容学习。
(2) 明日计划:继续学习 Java 接口相关知识点;
开展萌创传感器内容学习;
安排英语学习任务。
(3) 现存问题:前期 Java 学习浮于表面,知识点记忆不牢固,缺少定期复盘;
萌创相关学习内容断层,知识无法连贯串联。
浙公网安备 33010602011771号