首页 > 代码库 > Java和C++中final关键字的作用和区别

Java和C++中final关键字的作用和区别

Javafinal关键字的作用:

a.作用于:不允许扩展该类,即不能用该类来定义子类。

b.作用于方法:子类不能覆盖这个方法,但是可以被继承。

                    早期Java中,有程序员利用final来避免动态绑定带来的系统开销。现在这个功能主要由编译器来实现。

c.作用于:构造对象之后不能改变该域的值。

d.作用于函数参数:可以读取,但是不能改变该参数。

注意:final类的所有方法自动成为final的,不包括域。

 

将方法或类声明为final主要目的是确保它们在子类中不会改变语义。

String类就是一个final类,不允许定义String的子类。如果有一个String的引用,它引用的一定是一个String对象,而不可能是其他类的对象。

 

C++final关键字是C++11新增的,作用为:

a.作用于:阻止一个类成为基类,即不允许扩展该类。

b.作用于虚方法:组织派生类覆盖此虚方法。

Java和C++中final关键字的作用和区别