java-OOP:面向对象之封装与继承

119 阅读2分钟

java-OOP:面向对象

1、封装

概念:私有化属性,公开方法

为什么要这么做?

  1. 隐藏类的实现细节
  2. 限制对属性的不合理操作
  3. 公开的get、set方法,便于修改,增强代码的可维护性和健壮性
  4. 提高代码的安全性和规范性
  5. 是程序具备稳定性和可拓展性

2、继承

概念:子类(派生类)继承父类(基类)

  • 继承图

继承图.png

优点:

提高代码的复用性;

子类继承父类,不管子类调用哪儿个构造器,都会默认调用父类的无参构造

public son() {
    super();// 不会显示,系统自动调用
}

super 的使用

  • super只能放在第一行
  • super和this都只能放在第一行,所以不能共存

在方法体中 this('lzq') 是调用函数重载的方法,this标识当前对象,‘lzq’ 标识重载了的方法

继承的本质

java中所有的类都是Object的子类

内存继承图,需要仔细理解

Son子类中调用age属性,如果有下图集成关系,son类没有age属性,那么会向上找father继承类,如果father类有的话,就调用成功,如果没有再往上一级调用,直到Object类,都没有改属性,那么调用失败!

内存继承图.png

super关键字的理解

super代表父类的引用,用户访问父类的属性和方法、构造器

super与this的比较.png

子类重写父类方法的注意事项

  1. 方法名和参数列表必须和父类一样
  2. 返回类型要和父类一样,或者是父类返回类型的子类
  3. 子类的返回权限不能比父类的小
  4. 不能抛出新的异常或者是比父类更广的异常

重载与重写的区别

重载与重写的比较.png