继承
使用场景:多个类似的类,有相同的属性和方法,就可以把相同属性和方法抽取到父类
好处:减少了代码的冗余
深入继承:
创建子类对象,会不会调用父类构造方法?
会
创建子类对象,会不会创建父类对象?
不会
创建子类对象,为什么会调用父类构造方法?
目的是将父类的属性存放在子类对象中创建子类对象,先调用父类构造方法还是子类构造方法?
先调用子类构造方法创建子类对象,先完成父类构造方法还是子类构造方法?
先完成父类构造方法子类可以继承父类私有化的属性和方法吗?
可以,但是只能间接调用
super - 父类
含义:代表父类
作用 在子类中:
- super.属性:调用父类非私有化的成员变量
2. super.方法:调用父类非私有化的成员方法
3. super():调用父类非私有化的构造方法
重写
含义:重写也叫做复写,将父类中方法在子类中重新编写一遍
应用场景:父类方法不满足子类需求时,子类就可以重复父类的方法
条件:
- 在子类中重写父类的方法
- 返回值、方法名和参数列表必须和父类重写的方法一致
- 访问修饰符不能比父类重写的方法更严格
访问修饰符
含义:修饰类、方法、属性,定义使用的范围
学习:做实验
访问修饰符 | 本类 | 本包 | 其他包子类 | 其他包 |
---|---|---|---|---|
private | OK | |||
默认的 | OK | OK | ||
protected | OK | OK | OK | |
public | Ok | OK | OK | Ok |
Object
含义:基类也叫做超类,Object是所有类的祖先类
注意:如果一个类没有明确继承的父类,默认继承Object
equals:比较两个对象内存地址是否相同
hashCode:获取对象的hash值
getClass:获取类的字节码文件对象
toString:获取对象的字符串表示
标杆作用:Object作为所有类的父类,定义了几个方法,方便子类去重写
equals的标杆作用:比较两个对象是否相同,不同的对象比较规则不一样,所以子类重写即可
toString的标杆作用:每个子类都有不同的属性,重写toString直接打印该对象中所有的属性,方便观察数据
final
含义:最终
作用:
- 修饰类:该类不能被继承
- 修饰方法:该方法不能被重写
- 修饰变量:变成常量,不能重新赋值
常量的命名规则:全大写,单词之间用下划线隔开
常量的生命周期:存在常量池中,直到项目结束才会被销毁