一、static关键字
1. 静态变量(多线程)
2. 静态方法
3. 静态代码块
用于加载初始化的信息,类加载时就执行,永久只执行一次。
执行顺序:静态方法块(与类一起加载) --> 匿名代码块(赋初始值) --> 构造方法
后续执行时: 匿名代码块 --> 构造方法
4. 静态导入包
import static java.lang.Math.random;
5. 静态类
(待详细了解)
二、抽象类
抽象类特点:
- 其本质是一种约束
- 抽象类可以有普通方法
- 抽象方法必须在抽象类中
- 如果子类不是抽象类,那子类必须实现其父抽象类的所有抽象方法
- 类单继承,接口多继承
- 不能使用new,只能靠子类去实现,可以有构造方法
(构造方法的作用有两个:一个是初始化变量,另一个是实例化对象。这里可以用于前者)
三、接口
接口特点:
- 接口的本质是契约(约束),可定义一些方法让不同人实现
- 接口中不可以写普通方法,其所有定义的方法都是public abstract的
- 其定义的属性是public static final的
- 实现了接口的类,必须重写其所有方法
- 可利用接口实现多继承
- 接口不能被实例化,无构造方法
四、内部类
- 成员内部类
- 静态内部类(static修饰)
- 局部内部类(在方法中写类)
- 匿名内部类
UserService userService = new UserService(){
@Override
public void hello() {
...
}
};
interface UserService {
public void hello();
}
课程:【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili