2022-12-01
一、代码块
执行的时候,首先加载静态代码块,而且每次运行只加载一回,在构造方法执行前会调用构造代码块(每创建一个对象,构造代码块和构造方法就被调用一回)
作用上,静态代码块一般用于读取初始化参数、配置信息
构造代码块一般用于创建对象前做些准备工作
火车站卖票练习内存图
image.png
二、匿名对象
三、面向对象高级
继承
封装
多态
抽象类
接口
实现类
final关键字
内部类
四、继承
java中继承是类与类之间的关系,A类继承自B类,说B类是父类(基类、超类),A类是子类(派生类)
以下判断标准,满足任意一条,即认为构成继承关系
1、A is a B
2、A类的对象能够当作B类的对象去用
public class B{
}
public class A extends B{
}
五、子类实例化的过程
找到该类继承体系中最高的那个类,先创建一个对象,然后在向下一次创建子类对象,一直到继承体系最低的歌,要先有父对象,才能在父对象基础上改造产生子对象
六、java的单继承
一个java类只能有一个直接父类,但是可以有很多间接父类
父类可以有很多子类
七、子类的构造方法
jvm要求子类构造方法第一行有一个super(值)的构造方法调用,即调用父类的构造方法,如果没有手动写出,jvm会自动给加一个super()表示调用父类的构造方法,当然,也可以手动指定调用父类的哪个构造方法
八、子类与父类的属性和方法
1、子类会从父类继承属性和方法,反之父类不会从子类继承
2、当父类和子类有同名属性时,子类对象会取子类属性的值
当父类和子类有同名方法时,子类调用的是自己的方法
九、继承内存图
image.png十、重写、覆盖
@Override注解,可以认为是对代码的校正
修饰符 返回值类型 方法名(参数列表)
重写要求
1、返回值类型是void,父类子类要求一致
返回值类型是基本数据类型,父类子类要求一致
返回值类型是引用数据类型。父类子类要求一致或子类重写后方法返回值类型是原来父类方法的子类
作业
1、写一个vehicle另一个子类,大卡车,大卡车除了从vehicle继承属性外
自己还有一个载货量的属性,要求为该类创建一个构造方法,为父类和自己属性赋值,并在测试类中创建对象
2、沈北某师范大学有100个毕业生,某狼教育机构有5位咨询老师,这些老师随机招这些毕业生来学习,要求把招生老师及其招生数量存到一个数组中,并按照从大到小顺序排序