简单的归纳说:
final:最终。作为一个修饰符。
1、可以修饰类、函数、变量。
2、被final修饰的类不可以被继承。为了避免被继承:被子类复写的功能。
3、被final修饰的方法不可以被复写。
4、被final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量;也可以修饰局部变量。
举个例子简单的说:
class Demo-final {}
final class Dinosaur
{
int x = 7;
int y = 1;
Demo-final x = new Demo-final();
void f() {}
}
public class Jurassic
{
public static void main(String[] args)
{
Dinosaur n = new Dinosaur();
n.f();
n.x = 40;
n.y++;
}
}
数据成员既可以是final,也可以不是,取决于我们具体选择。应用于final的规则同样适用于数据成员,无论类是否被定义成final。将类定义成final后,结果只是禁止被继承——没有更多的限制。然而,由于它禁止被继承,所以一个final类中的所有方法都默认为final。因为此时再也无法覆盖它们。所以这与我们将一个方法明确声明为final一样。 作者: 四川男人 时间: 2014-4-16 21:08
可以用于做单例模式,final修饰的对象,在堆内存中的地址不能改变了,但是对象封装的内容是可以改变的