1.继承(extends): 子类继承父类
1).语法结构:
子类(衍生类/扩展类) extends 父类(基类)
2).继承的特征:
a.子类继承父类,就继承父类中所有的成员变量和成员方法
b.所有类都有默认继承的父类:Object
c.一个类只能有一个父类,但是一个父类可以有多个子类
d.子类中还可以定义自己独特的成员变量和成员方法 子类的功能一定比父类的强大
从内存图中分析
⽗类空间优先于⼦类对象产⽣
在每次创建⼦类对象时,先初始化⽗类空间,再创建其⼦类对象本身。⽬的在于⼦类对象中包含 了其对应的⽗类空间,便可以包含其⽗类的成员,如果⽗类成员⾮private修饰,则⼦类可以随意 使⽤⽗类成员。代码体现在⼦类的构造⽅法调⽤时,⼀定先调⽤⽗类的构造⽅法。理解图解如下
3).特殊情况:
a.子类中的成员变量名和父类中的同名时
Dog d = new Dog()
d.name -> 显示子类中自己的成员变量,获取不到父类的成员变量 建议: 有父子类关系的类中,尽量不要出现相同的成员变量名
b.子类中可以引用父类对象
c.创建子类对象之前,会先创建父类对象 ,子类加载前,会先加载父类
e.通过子类对象调用方法是
先看子类中有没有重写父类中的方法
如果重写了,则显示子类中的方法
如果没有,则显示从父类中继承过来的方法