继承
继承是java面向对象的三大特征之一
继承:把共有的一些属性和方法抽取出来成为另外一个类,这个类就叫做父类。 子类通过extends继承父类,可以使用从父类继承的属性和方法
类中成员:
成员变量、普通方法、构造方法
可继承:
- 成员变量
- 普通方法
不可继承
- 构造方法
private修饰的属性或者方法只是从访问层面不能被继承,可通过继承方法间接访问
继承的特点
- 单继承,只有一个直接父类
- 可多重继承
- 一个类没有显式的父类,那么隐式继承Object类
方法重写
重写的注解:@Override ,用于校验重写是否成功
重载与重写的对比:
- 重载:方法名相同 参数列表不同(个数 类型 顺序)
- 重写:对父类方法的拓展,当父类方法无法满足子类需求时,子类需重写父类方法
重写注意事项:
- 方法名必须相同
- 参数必须一致
- 子类方法访问权限修饰符>=父类方法访问权限修饰符
- 若被重写方法有返回值,子类方法返回值类型<=父类方法返回值类型,如:String<Object
Object类
Object类是所有类的根类,每个类都使用Object作为超类。【注:接口没有关系】
Object常用方法:
- String toString() 返回调用此方法的对象的字符串表示形式
- boolean equals(Object obj) 比较两个对象是否“相等”,底层通过 == 比较是否相等
我们在定义类的时候通常会覆写toString和equals方法,以满足我们的需求
== 比较运算符的特点
- 基本数据类型变量: 比较的就是值是否相等
- 引用数据类型变量: 比较的是对象的地址值是否一样 【注:排除String特殊情况】
访问权限修饰符
访问权限排序:private < 默认不写(注意不要添加default修饰) < protected < public
作用:主要控制类以及类中成员的访问权限
主要修饰类中的字段、方法、构造方法、内部类
- public 默认 可以修饰类(内部类,外部类)
- private protected 不能修饰外部类
- 都不能修饰局部变量
访问权限列表
同一个类中成员 | 同一个包中成员 | 不同包但存在继承的子类 | 全局 | |
---|---|---|---|---|
private(私有) | √ | |||
默认不写 | √ | √ | ||
protected(受保护的) | √ | √ | √ | |
public | √ | √ | √ | √ |