《继承与多态》学习总结——继承
继承,是"分类"在代码里的投影
开始用狮子与动物的例子点明本质:继承是对现实世界"分类"概念的模拟,即 IS_A 关系——狮子拥有动物的一切基本特性,又有自己的独特特性。语法上就是一个 class 子类 extends 父类。
这一部分给我印象最深的不是语法本身,而是几个容易踩坑的细节:
super 必须是子类构造方法的第一句——为什么不能反过来?课件引导我们从"构造函数的作用"去想:父类是"地基",必须先把父类部分构造好,子类才能在此基础上初始化,顺序天然不可逆。
final 的三重含义:类不能被继承、方法不能被覆盖、变量不能被修改,由此可以设计出"不可变类"。String 就是典型——它能在多线程环境里免加锁、提升性能。
Object 是所有类的顶层基类,以及"神奇的 + 号":字符串与对象相加时,会隐式调用对象的 toString(),默认返回"类名@hashCode",所以要重写它才能得到有意义的信息。
我的感受:继承不只是一个语法糖,它背后是"由一般到特殊"的思维方式。课件反复强调"动手实验",尤其用 javap -c 反汇编去探索 new A() 输出的 A@1c5f743 真相,这种"源码之前,了无秘密"的钻研精神,比记住语法更宝贵。
浙公网安备 33010602011771号