java关键字final和抽象类
一、final关键字
- final可以修饰类,表示该类不可被继承
- final可以修饰属性,表示一个常量,并且必须赋值,可以直接赋值,或者在构造器和代码块中赋值
- 如果修饰的是static属性,那么只能在定义时和静态代码块中赋值,因为静态final属性在类加载就要被赋值。
- final可以修饰方法,表示不可被重写,但是可以继承的,如果一个类是final类,他的方法可以不用final修饰,因为类不能继承,同样方法也重写不了
- final也可以修饰方法里的局部变量
- final不能用来修饰构造函数
- final可以与static一起用效率更高,不会导致类加载,比如类里有个静态属性,如果你想单纯地使用它,但是又不想加载类,就可以用final修饰这个属性。
二、抽象类
定义:当父类中的一些方法不知如何实现时,我们可以用abstract修饰这个方法,这个方法就叫抽象方法,该类叫抽象类。抽象类主要价值在于设计,好让子类继承去实现这个抽象类。
语法:
1、抽象类:【访问修饰符】abstract class 类名{
}
2、抽象方法:【访问修饰符】abstract 返回类型 方法名();
==注意:抽象方法无方法体
细节:
- 抽象类不能实例化
- 抽象类可以没有抽象方法。但如果有抽象方法,类必须用abstract修饰成抽象类
- 如果一个类继承了抽象类,那么它必须实现抽象方法,或者自己声明为抽象类。
- 抽象方法不能用private、final、static修饰,这些关键字是与重写相违背的。