一、类之间的关系
以Dad类为例,
自身: 指的是Dad类
同包子类: Son 是 Dad 的子类,并且和Dad在同一个包下
不同包子类: Daughter 是 Dad 的子类, 但在另一个包下
同包类: Character 和 Dad 在同一个包下,但没有继承关系
其他类: Teacher1 在不同的包下,与Dad之间没有继承关系
二、修饰符分类
成员变量有四种修饰符:
①private 私有的
②package /friendly /default 默认
③protected 受保护的
④public 公共的
比如 public 表示公共的
public String name;
age 没有修饰符代表 package / default
int age;
(1) private 私有
使用private修饰属性隐藏类的细节,保护类中数据不被随意修改
使用对象:变量、方法
只能被所属类访问. 类和接口不能 声明为 private (不能修饰外部类)
想要访问 private 类型的变量 只能通过类中 公共getter方法 来访问
自身 | 同包子类 | 不同包子类 | 同包类 | 其他类 | |
private | ✔ |
(2) package /friendly/default 默认
在同一个包内可见,不使用任何修饰符.
使用对象:类、接口、变量、方法
自身 | 同包子类 | 不同包子类 | 同包类 | 其他类 | |
default | ✔ | ✔ | ✔ |
(3)public 公有的
使用对象:类、接口、变量、方法
被声明为public 的类、方法、构造方法和接口能被任何类访问
自身 | 同包子类 | 不同包子类 | 同包类 | 其他类 | |
public | ✔ | ✔ | ✔ | ✔ | ✔ |
(4)protected 受保护的
使用对象:变量、方法
对同一包内的类和所有子类可见.
protected 可以修饰数据成员、构造方法、方法成员,不能修饰类(内部类除外)
自身 | 同包子类 | 不同包子类 | 同包类 | 其他类 | |
protected | ✔ | ✔ | ✔ | ✔ |
三、访问修饰符使用情况
属性通常使用private 封装。
方法一般使用public 被调用。
父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。
父类中声明为 private 的方法,不能够被继承。