第五章 子类与继承
重点:类的继承,上转型对象和多态技术
难点:理解上转型的对象和多态技术的理解和应用
5.1子类和父类
5.1.1声明子类
使用关键字extends来定义一个类的子类格式如下:
class 子类名 extends 父类名{
...
}
例如:
class Student extends People{
...
}
5.3子类与对象
子类继承了父类的很多东西,那么子类在创建对象时候,它又是怎么生成自己的对象?
子类可以继承父类除了private的成员变量作为自己的成员变量,也可以很正常的将不是private的方法作为自己的方法。
龙生龙凤生凤,老鼠的儿子会打洞,讲的是继承;同时长江后浪拍前浪,讲的是子类自身发展,具体展示。
另外注意
虽然private变量无法直接被子类调用,但是并非完全不可访问。同类中的方法中如果调用了private变量,这个方法如果是public的,那么子类就可以调用这个public的方法,从而调用的那个private的变量。
5.4.1成员变量的隐藏
编写的子类时,我们声明成员变量的名字如果和从父类继承而来的成员变量的名字相同时(类型可以不同),那么子类就会隐藏继承的父类成员变量。也就是子类的那个优先。
那么我们还能用刚刚继承而来的成员变量吗?可以利用子类访问父类的方法(该方法不是private的方法),这个父类的方法恰好可以访问自己的成员变量,并对该变量进行运算。
打个比方:
你的父亲有一张教职工的卡,你也有一张,某一天你没带,门卫很严格,你不能直接刷你父亲的卡进门,但是你可以让你父亲刷卡带你进门。
这就是制度的严格性和方法的灵活性哈哈哈