final关键字(数据,方法,类)

final关键字用来修饰类的数据,方法以及一个类,下面分别总结了final在这三个方面的用法:

1.修饰一个数据

    a.如果这个数据是一个基本类型,那么它在编译时就确定了值 ,并且程序运行时是不可改变的。如果这个数据是对象引用类型的,那么这个引用恒定不变,而对象自身是可以改变的。

    b.final修饰的数据可以是空白的,即在定义处未被赋值的,编译器为了保证数据在使用前必须初始化,要求在每个构造器中对空白final进行赋值。

    c.final参数,java允许在参数列表里使用final修饰,被修饰的数据只能在方法中被读取,但无法被修改。

2.修饰一个方法

    a.使用final修饰方法的两个原因:主要原因是禁止子类覆写该方法,关闭了动态绑定(多态),次要原因是效率问题,即内嵌调用,内嵌调用对于短代码效率高,对于长代码效率低,这种提升效率的做法不被提倡。

    b.private方法都隐含着指定为final的。由于final修饰的方法本来就不能被子类覆写,这和private的效果一致。如果试图覆写一个private方法,编译器不会报错,这是因为你并没有覆盖基类的方法,只是在子类中生成了一个新的方法。

3.final修饰类

    final修饰的类不能被继承,同时final类所有方法也都隐式的指定为是final的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章