Bootstrap

【Java】final和static关键字

final关键字

final的概念

继承的出现提高了代码的复用性,并方便开发。但是,有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让子类重写。可是当子类继承了这些特殊类之后,就可以对其中的方法进行重写,这怎么办呢?
要解决上面的问题,需要用到关键字final,final意思是最终,不可变。
final是个修饰符,它可以修饰类,类的成员,以及局部变量。

final特点

  • final修饰的类不能被继承,但是可以继承其他类。另外,final类的使用方式、创建对象、调用方法都没有变化
class Yy {
   }
final class Fu extends Yy{
   } //可以继承Yy类
final class Fu{
   }
class Zi extends Fu{
   } //Fu是final类,不能继承Fu类
  • final修饰的方法不可以被覆盖(重写),但父类中没有被final修饰方法,子类覆盖(重写)后可以加final。
class Fu {
   
    // final修饰的方法,不可以被覆盖,但可以继承使用
    public final void method1(){}
    public void method2(){}
}
class Zi extends Fu {
   
    //重写method2方法
    public final 
;