Java面向对象-final关键字
final是终结 完结的意思;
使用final声明的类不能被继承;
使用final声明的方法不能被子类覆盖;
使用final声明的变量不能被修改,即为常量;
1,final修饰类
我们建一个僵尸类:
1
2
3
4
5
6
7
8
9
10
|
package
com.java1234.chap03.sec10;
/**
* 僵尸类
* @author user
*
*/
public
final
class
JiangShi {
}
|
这类是final修饰的,我们再建一个Test类 继承JiangShi类:
我们发现 编译报错了 说不能继承final类;
2,final修饰方法
我们再新建一个类 ,加一个final方法:
1
2
3
4
5
6
7
8
|
package
com.java1234.chap03.sec10;
public
class
People {
public
final
void
action(){
System.out.println(
"做一个良好公民!"
);
}
}
|
我们搞一个类继承下People类:
我们发现,编译出错,说不能重写父类final方法;
3,final修饰的变量
我们在People类搞一个final属性,然后在方法里修改这个属性;
我们发现,编译出错,说final字段不能修改;
final修饰字段的时候 一般和static一起使用,来定义一些不可变的静态常量 方便程序使用;
1
2
3
4
5
6
7
8
9
|
package
com.java1234.chap03.sec10;
public
class
Common {
/**
* 静态常量
*/
public
static
final
String CHINA_CAPITAL=
"北京"
;
}
|
我们调用的话 直接类名.属性 即可;
1
2
3
4
5
6
7
8
|
package
com.java1234.chap03.sec10;
public
class
Test{
public
static
void
main(String[] args) {
System.out.println(Common.CHINA_CAPITAL);
}
}
|