1.继承的写法:
class 子类 extends 父类{}
2.继承的优缺点:
优点:
提高代码的复用性
提高代码的可维护性
是多态的前提
缺点:
类的耦合性增强了
父类发生变化,子类实现也不得不跟着变化,削弱了子类独立性
java中只支持单继承,不支持多继承,支持多层继承
注:子类只继承父类的所有非私有的属性和方法
子类不能继承父类的构造方法
不要为了部分功能而去做继承
3.继承中变量的访问特点
采用就近原则
1.子类局部范围找
2.子类成员范围找
3.父类成员范围找
4.如果都没有就报错(不考虑父类的父类)
4.super和this
this:指代当前对象的引用
super:指代当前对象父类的引用
构造方法:
this(...) -访问本类构造方法
super(...) -访问父类构造方法
注:父类中私有方法,不能被子类重写
子类中重写方法的访问权限不能低于父类中方法的访问权限
5.继承中构造方法的访问特点?
注意:子类中所有的构造方法默认都会访问父类中无参的构造方法
子类会继承父类的数据或使用父类的数据,所以,子类初始化之前,一定要先完成父类数据的初始化,原因在于,每一个子类构造方法的第一条语句默认是:super()
6.重写
重写:子类出现了和父类中一模一样的方法声明(方法名一样,参数列表也必须一样)
重写场景:子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法
重写与重载区别?
重载的访问权限可以不一样,重写的访问权限不能低于父类的访问权限
重载返回值类型可以改变,重写不行
重载参数列表必须不同,重写必须相同
重载在同一个类中,重写必须在父子类中
Override注解:用来检测当前的方法,是否是重写的方法,起到校验作用
重写的注意事项?
1.私有方法不能被重写(父类私有成员子类是不能继承的)
2.子类方法访问权限不能更低(public>默认>私有)
7.final关键字:
修饰一个类,该类不能被继承
修饰成员变量,该成员变量就变成一个常量,只能初始化一次,不能被修改
修饰成员方法,该方法不能被重写
修饰局部变量,该变量变成一个常量
final修饰的变量类型如果是基本类型,值不能被修改
final修饰的变量类型如果是引用类型,地址不能被修改,对象的属性可以被修改
8.static访问特点
1.非静态成员方法
能访问静态的成员变量
能访问非静态的成员变量
能访问静态的成员方法
能访问非静态成员方法
2.静态的成员方法
能访问静态的成员变量
能访问静态的成员方法
总结:静态成员方法方法只能访问静态成员