继承是Java三大特性之一
什么是继承
继承就是从具有包含关系的一个个类中抽象出一个具有共同属性和方法的新类,也就是父类。Java中的继承使用的是extends关键字,继承的类叫做子类(扩展类),被继承的类叫做父类(超类或者基类)。凡是这种可以有包含关系的类都能实现继承关系。
继承中的术语和注意事项
1.类:类是具有共同属性和行为的一组对象。他是创建对象的模板或蓝图。
2.子类:子类是继承其他类的类。它也称为派生类,扩展类或子类。
3.超类/父类:超类是子类继承功能的类。它也称为基类或父类。---通用的属性和方法
4.可重用性:正如名称所指定的那样,可重用性是一种机制,可以帮助您在创建新类时重用现有类的属性和方法。
5.Java中类只支持单继承,即一个类只能有一个直接父类
使用继承
1.编写父类,创建公共的属性和方法
2.编写子类 使用extends继承父类
3.编写子类中特有的属性和方法
注意:
1.super关键字代表父类,只能出现在子类的方法和构造方法中
2.在子类构造方法中使用super调用父类构造方法,必须位于第一句
3.子类不可以直接访问父类中定义为private的属性和方法。private的东西是不能被继承的
子类不能继承父类的情况
1.private修饰的属性和方法
2.子类和父类不在同一个包下,不能继承默认访问权限的成员
3.不能继承构造方法
什么时候使用继承
符合is a关系的时候,可以考虑使用继承。
继承的优点
将子类共有的属性和方法抽取到父类中,减少重复代码,实现代码的重用
案列1
需求说明
代码实现测试子类到底继承了父类什么内容
测试类
案例2
需求说明
代码测试子类创建对象时, 会自动调用父类的构造方法
测试类
案例3
需求说明
使用继承和封装实现:
写一个person类
姓名,地址,性别
方法:eat()
写一个学生类继承person
学生特有属性:身高
写一个老师类继承person
老师特有属性:年龄
实现:
1、设置性别是只支持男或女
如果错误默认是男
2、学生特有方法摸鱼方法
老师特有方法检查作业
3、创建子类对象
调用父类方法和子类特有方法
4、父类方法不满足子类需要时,
在子类中对父类的方法进行重写eat()
父类
子类
测试类