一.继承的概念
java通过extends关键字可以让类和类之间产生子父类关系
二.继承的使用格式
public class 子类 extends 父类{};
三.继承可以为我们带来的什么样的好处
1.子类可以直接访问父类的非私有的东西, 间接访问父类私有的东西
2.我们可以将多个子类的共性的内容抽到父类中, 提高代码的复用性,提高代码的维护性, 一旦修改了父类的内容所有的子类都会跟着变化
四.继承的注意事项
1.java只支持单继承, 不支持多继承, 但是支持多层继承
2.我们创建子类的时候, 其实子类由子类以及其所有的父类构成
3.不能随意继承, 一定满足is a的情况下再去继承, 否则就会出现继承下一些本不属于自己的方法
4.一个类如果没有显示继承任何类的话, 默认继承Object类
5.当我们子类对父类的方法不满意的时候, 可以对父类的方法进行重写:
(1) 可以@Override的注解校验重写是否正确
(2) 子类重写父类方法时, 必须保证权限修饰要么和父类一样, 大于父类的权限修饰符
(3) 子类重写父类方法的时候, 返回值类型要么和父类一样, 要么比父类的类型要"小" ,子类的返回值必须是父类的返回值的本类以及其子类
(4) private 和static的方法不能重写
6. 如果子父类中出现相同的成员, 如果不加修饰我们遵循的就近原则, 如果非要访问父类的,可以使用super关键字来去访问父类的东西
五.权限修饰符
作用:限制资源的访问范围
分类:
(1)public 本类, 本包, 不同包的无关类, 不同包的子类
(2)protected 本类, 本包, 不同的子类内部
(3)缺省 本类, 本包
(4)private 本类
六.子类和父类构造函数的特点
1.子类必须走父类的构造函数
2.如果我们子类的构造方没有调用任何构造, 系统会默认调用父类的无参构造super();
3.如果我们手动调用了任何构造, 系统不会帮你调用无参构造, 构造函数的调用必须在构造函数的第一行有效语句
4.父类如果没有无参构造, 子类必须手动调用父类的有参构造
七.super和this
1.super调用父类相关的成员以及构造
2.this调用本类的成员以及构造