继承
概述:让一个子类通过extenbds关键字继承自一个父类
子类可以使用父类公共的东西,还可以重新定义,追加属性和方法
1.继承的好处和弊端
好处:
提高了代码的复用性:多个类相同的成员可以放在一个类中
提高了代码的维护性:如果方法需要修改,只需要修改一处即可
弊端:
继承让类与类之间产生了关系,增加代码之间的耦合度,当父类发生变化时,子类也跟着变化
super和this
this:可以代表当前类对象的引用
super:可以代表父类对象的引用
2.三个访问特点:
2.1构造方法的访问特点
-
子类在初始化时,可能用到父类数据,需要先初始化父类
-
子类构造中第一条语句,默认都是super();-->子类所有的构造方法,默认都会访问父类的空参构造"
-
所有的类都直接,或者间接的继承自Object
如果父类没有提供空参构造
-
子类通过super显示调用父类带参构造
-
手动给出父类无参构造
2.2 成员变量:遵循就近原则
继承中成员变量的访问特点
查找顺序:子类局部-->子类成员-->父类成员-->找不到报错
规律:就近原则
2.3 成员方法的访问特点
子类成员范围-->父类成员范围-->找不到报错
需要使用父类时,成员前+super.-->进行调用
3.java中继承的注意事项
只支持单继承,不支持多继承,但是可以多层继承
一个儿子只能有一个爸爸,爸爸也可以有一个爸爸(儿子的爷爷)
2. 权限修饰符
pribvate :私有
同一个类中或同一个包中子类无关类(不在同一个类中要提供set/get方法)
protected :保护
同包和不同包的子类/无关类
public :公共
final关键字
修饰方法: 该方法为最终方法,不能被重写
修饰变量:
成员变量:其值不能被改变,注意初始化时机
修饰类:表明是最终类,不能被继承
static关键字:修饰方法和变量
变量-->被当前类所有对象共享
方法-->类名.直接调用
访问特点:
-
静态只能访问静态成员
因为静态优先于对象加载,此时非静态成员还不存在
-
非静态能访问静态和非静态成员
因为静态方法加载之前,肯定先加载了类并创建了对象
静态的加载优先于对象,所以非静态肯定可以访问到静态
-
静态方法中,没有this关键字
this代表当前对象的引用
静态优先于对象,,此时还不存在对象,所以静态方法不存在this
注意事项:只有静态可以调静态
工具类设计思想
公参构造私有-->不让外界创建对象
方法都是静态的-->便于调用者调用
jar包和帮助文档