五十九、继承
继承是面向对象三大特征之一,可以使得子类具有父类(基类、超类)的属性和方法,还可以在子类(派生类)中重新定义,追加属性和方法。
格式:public class 子类名 extends 父类名 { }
优点:提高代码的复用性和维护性
缺点:当父类改变,则子类也跟着改变
什么时候使用继承:类之间是包含关系时
就近原则在继承中体现:在子类方法中访问一个变量(方法)时,寻找范围依次是:子类局部 → 子类成员 → 父类成员 →如果都没有就报错(不考虑父类的父类)
注:1.只支持单继承,不支持多继承
2.支持多层继承
六十、super
简而言之,this用来调本类,super用来调父类
super内存图:
这里需要注意,父类和子类的同一变量在同一地址!
六十一、方法重写
@override是个注解,加载要重写的方法前面,帮助我们检查
注
注:1.不能重写私有方法(父类私有成员子类是不能继承的)
2.子类方法访问权限是不能更低(public > 默认 > 私有)
六十二、package
包的作用:对类进行分类管理
格式:package 包名;(多级包用.分开)
六十三、import
六十四、权限修饰符
六十五、状态修饰符
final修饰的方法(变量)(类)是不能重写(改变)(继承)的(数据值不变)
final修饰的引用类型是可以变的,相当于地址值不变,内容可以变
static: