java-OOP:面向对象
1、封装
概念:私有化属性,公开方法
为什么要这么做?
- 隐藏类的实现细节
- 限制对属性的不合理操作
- 公开的get、set方法,便于修改,增强代码的可维护性和健壮性
- 提高代码的安全性和规范性
- 是程序具备稳定性和可拓展性
2、继承
概念:子类(派生类)继承父类(基类)
- 继承图
优点:
提高代码的复用性;
子类继承父类,不管子类调用哪儿个构造器,都会默认调用父类的无参构造
public son() {
super();// 不会显示,系统自动调用
}
super 的使用
- super只能放在第一行
- super和this都只能放在第一行,所以不能共存
在方法体中 this('lzq') 是调用函数重载的方法,this标识当前对象,‘lzq’ 标识重载了的方法
继承的本质
java中所有的类都是Object的子类
内存继承图,需要仔细理解
Son子类中调用age属性,如果有下图集成关系,son类没有age属性,那么会向上找father继承类,如果father类有的话,就调用成功,如果没有再往上一级调用,直到Object类,都没有改属性,那么调用失败!
super关键字的理解
super代表父类的引用,用户访问父类的属性和方法、构造器
子类重写父类方法的注意事项
- 方法名和参数列表必须和父类一样
- 返回类型要和父类一样,或者是父类返回类型的子类
- 子类的返回权限不能比父类的小
- 不能抛出新的异常或者是比父类更广的异常