00050_final关键字

1、final的概念

  final,final的意思为最终,不可变。final是个修饰符,它可以用来修饰类,类的成员,以及局部变量。

2、final的特点

  (1)final修饰类不可以被继承,但是可以继承其他类;

class Yy {}
final class Fu extends Yy{} //可以继承Yy类
class Zi extends Fu{} //不能继承Fu类

  (2)final修饰的方法不可以被覆盖,但父类中没有被final修饰方法,子类覆盖后可以加final;

1 class Fu {
2     // final修饰的方法,不可以被覆盖,但可以继承使用
3     public final void method1(){}
4     public void method2(){}
5 }
6 class Zi extends Fu {
7     //重写method2方法
8     public final void method2(){}
9 }

  (3)final修饰的变量称为常量,这些变量只能赋值一次;

final int i = 20;
i = 30; //赋值报错,final修饰的变量只能赋值一次

  (4)引用类型的变量值为对象地址值,地址值不能更改,但是地址内的对象属性值可以修改;

final Person p = new Person();
Person p2 = new Person();
p = p2; //final修饰的变量p,所记录的地址值不能改变
p.name = "小明";//可以更改p对象中name属性值
// p不能为别的对象,而p对象中的name或age属性值可更改

  (5)修饰成员变量,需要在创建对象前赋值,否则报错(当没有显式赋值时,多个构造方法的均需要为其赋值)。

 1 class Demo {
 2     //直接赋值
 3     final int m = 100;
 4     
 5     //final修饰的成员变量,需要在创建对象前赋值,否则报错。
 6     final int n; 
 7     public Demo(){
 8         //可以在创建对象时所调用的构造方法中,为变量n赋值
 9         n = 2016;
10     }
11 }

 

posted @ 2017-12-21 19:41  gzdlh  阅读(99)  评论(0)    收藏  举报