假期学习8

第8天:继承
对应章节:第5章
(1)今天做了什么: Java用extends实现单继承——子类拥有父类所有属性和方法(构造器除外)。方法重写(Override):方法签名完全相同、访问权限不能更严、异常不能更宽、返回值类型可以是被重写方法返回值的子类(协变返回类型)。@Override注解让编译器帮忙检查是否真的重写。super关键字:调用父类构造器super()必须写在子类构造器首行,若父类没有无参构造器则必须显式调用有参的super;super也可访问被覆盖的父类方法。理解了子类实例化顺序:父类静态→子类静态→父类实例变量→父类构造器→子类实例变量→子类构造器。练习:设计了Animal父类(name、eat()),派生出Dog(bark())和Cat(catchMouse())。
(2)明天准备做什么: 学习第5章中间部分——面向对象三大特性之多态:实现条件(继承+重写+父类引用指向子类对象),"编译看左边,运行看右边",instanceof运算符和强制向下转型。搭建Shape→Circle/Square形状体系练习。
(3)遇到的问题: 忘记在子类构造器首行写super()时,编译器自动调用父类无参构造器——但如果父类只有有参构造器,子类构造器就报错,必须手动super(参数)。方法重写不小心写错了参数类型导致变成了重载而非重写,@Override注解立刻报错提醒,深刻体会了这个注解的重要性。子父类中同名的成员变量不会覆盖而是隐藏,通过父类引用访问到的是父类的变量——这与方法的多态表现不同。

posted @ 2026-07-29 14:10  呱哒  阅读(8)  评论(0)    收藏  举报