一. 继承(extends)
a) Extends的意思是“扩展”,子类是父类的扩展
b) 类是对对象的抽象,继承是对某一批类的抽象,从而实现对现实世界更好的建模。
c) 提高代码的复用性
d) 子类继承父类,可以得到父类全部属性和方法(构造方法除外)
e) Java中类只有单继承,没有像c++那样的多继承(多继承会引起混乱,使得继承过于复杂,系统难以维护)
f) Java中的多继承可以通过接口实现
g) 如果定义一个类时,没有使用extends,则它的父类是Java.lang.Object
h) 方法的重写(overRide):
1. 在子类中可以根据需要对从基类(父类)中继承来的方法进行重写
2. 重写方法必须和被重写方法具有相同的方法名,参数列表和返回的类型
3. 重写的方法不能使用被重写方法更严格的访问权限
二. Object类
a) Object类时所有Java类的根基类
b) 如果在类中声明中未使用extends关键字指明其基类,则默认基类为Object类
三. 隐藏/封装
a) 作用:隐藏对象的内部的复杂性,对外只公开简单的接口,便于外界调用,从而提高系统的可扩展性、可维护性
b) 高内聚,低耦合:高内聚就是类的内部数据操作细节自己完成,不允许外部的干涉。低耦合是仅暴露少量的方法给外部使用
c) 使用接口访问控制符,实现封装
d) 访问控制符的范围
| 同一个类 | 同一个包 | 子类 | 所有类 |
private | * |
|
|
|
default | * | * |
|
|
protected | * | * | * |
|
public | * | * | * | * |
e) 封装要点
1. 类的属性的处理(常量或static变量)
a) 一般使用private(除非本属性确定会让子类继承)
b) 提供相应的get、set方法来访问相关属性,这些方法通常是public,从而提供对属性的操作(boolean类型变量的get方法是用“is”开头)
希望其他类调用的方法用public