1、为什么需要继承?
对象与对象之间存在着许多的共性,那么部分代码可以复用,这个时候可以使用继承进行共性抽取。
2、继承的概念
子类继承父类,复用父类中的成员,子类在实现时只需关心自己新添加的成员。
3、继承语法
修饰符class子类extends父类{
//
}
4、子类访问父类成员(2种情况)
(1)子类和父类不存在同名成员变量
(2)当子类和父类成员存在同名的成员变量(就近原则)。
优先访问自己的成员变量,再访问父类成员变量,如果子类和父类中都没有,则编译报错。
5、子类访问父类成员方法(2种情况)
(1)子类和父类不存在同名成员方法。
优先访问自己的成员方法,再访问父类成员方法,如果子类和父类中都没有,则编译报错。
(2)当子类和父类成员存在同名的成员方法(super关键字)。
使用super访问父类成员,父类成员方法,父类构造方法。
注:
- 只能在非静态(static修饰为静态)方法中使用;
- 在子类方法中访问父类成员变量和方法。
6、子类调用父类构造方法
子类对象构造时,要先调用父类的构造方法,然后执行子类的构造方法。
Why?
因为,子类成员由两部分组成,一部分是从父类继承下来的,要使用父类的构造方法构造将继承下来的成员完整,一部分是自己类当中的,要使用自身的构造方法将成员构造完整。
7、super关键字在继承中的使用(与this对比学习—博客后面出)
super. 访问父类成员
super. 访问父类成员方法
super() 访问父类构造方法
8、继承方法
- 单继承;
- 多层继承(不是多继承Java中不支持多继承,一般不支持超过3层继承);
- 不同子类继承同一个父类。
9、final关键字
- 被final修饰的变量或者字段,表示常量,不可修改;
- 被final修饰的类不可被继承。