java中的final总结

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

java关键字final有最终的,不可改变的含义,它可以修饰非抽象类、非抽象类成员方法和变量。

报错:类"TestFinal"要么是abstract,要么是final的,不能两个都是.

1.final修饰的类就是终极的.不能被其他类继承,就不可能有子类.

2.由于final类没有子类,其中的方法不可能被覆盖,因此,final类中的

所有方法和变量都是final的,并不需要明确地将某个方法声明为final.

public finalclassTestFinal{publicstaticfinalintI=1;//final类中的数据成员可以是final的PRotectedintj;//final类中的数据成员可以不是final的publicvoidf(){}//final类中的方法是final的,可以不明确声明publicfinalvoidg(){}//final类中的方法可以声明为final的,不过没什么意义}

3.final方法不能被子类的方法覆盖,但可以被继承。

publicclassTestFinalextendsFinalOnMethod{publicstaticvoidmain(String[] args) {

TestFinal tFinal=newTestFinal();

tFinal.One();

}

}classFinalOnMethod{publicfinalvoidOne(){

System.out.println("hello,我是一个final方法,但是我所在的类,没有final修饰哦!!!!!!!!!!!!!");

}

}

下面我们来重写这个被final修饰过得方法.

编译时就报错了.

由此我们联想到私有方法也是不可被继承的.

因为系统把私有成员当做final处理.我们也可以将一个私有成员表示成fianl的.但是这没什么意义.

4.final成员变量表示常量,只能被赋值一次,赋值后值不再改变,如果强行赋值会出现编译错误。

5.final不能用于修饰构造方法.构造方法不存在被继承,也就不可能被重写,也就是说构造方法本身就是最终的,没必要使用final标示.

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航