final关键字在Java中的具体用法总结
来源:互联网 发布:linux挂载samba共享 编辑:程序博客网 时间:2024/05/06 02:26
关键字final的使用:
在声明Java类、变量和方法时可以使用final关键字修饰,使其具有“终态”的特性。
1、final常见的一些特性:
(1)final修饰的类不能被继承,故没有子类,其方法永远不能被重写。
(2)final修饰的方法不能子类被重写,但是所在的类可以被继承。
(3)fina修饰的变量即为常量,只能赋值一次,可以在声明的同时赋值,也可以单独赋值,一旦赋值就不能再改变。
(4)final不能修饰构造方法。
(5)父类的private成员是不能被子类方法重写的,所以private类型的方法默认是 final 类型的。
2、final修饰Java类
final修饰的类不能被继承,故没有子类,其方法永远不能被重写。
pubic final class A { }
3、final修饰方法
如果一个类不允许子类重写某个方法,则把他声明为final方法即可:
使用final方法的好处:
(1)将方法锁定,防止任何子类篡改他的具体功能和实例;
(2)Java语言规范允许编译器对final方法的调用进行优化,即所谓的“直列式处理”。
public class Test1 { public void t1() { System.out.println("t1"); } ---无法被子类重写的方法 public final void t2() { System.out.println("t2"); } public void t3() { System.out.println("t3"); } private void t4() { System.out.println("t4"); } } public class Test2 extends Test1 { public void t1(){ System.out.println("Test1父类方法t1被重写!"); } public static void main(String[] args) { Test2 t = new Test2 (); t.t1(); t.t2(); ---调用从父类继承过来的final方法 t.t3(); ---调用从父类继承过来的方法 ---t.t4(); ---调用失败,无法从父类继承获得 } }
程序运行输出结果为:
Test1父类方法t1被重写!
t2
t3
4、final修饰常量(变量)
final修饰Java变量,包括成员变量和局部变量。final修饰的变量即为常量,只能赋值一次,可以在声明的同时赋值,也可以单独赋值。
final修饰成员变量,在初始化时分为2 种情况:
(1)声明为final实例变量时,必须在声明的同时或在每个构造方法中显式的赋值,而且这两种初始化方式不能同时出现,否则编译报错。
(2)声明为final类变量时,必须在声明的同时或者在static初始化块中显式赋值,且这两种初始化方式不能同时使用,否则编译报错。
public class test3 { public static final String name = "Jim"; private static int sum = 1000 ; int id; public test3(){ id = ++sum; } public int getId(){ return id; } public int getSum(){ return sum; } public static void main (String[] args){ test3 t = new test3(); System.out.println(t.name + "\t" + t.getId()); final int m = 10 ; final int n ; m = 20 ;--- 错误用法。 n = 30 ; }}
程序运行输出结果为:Jim 1001
5、final修饰参数
当函数参数为final类型时,可以读取使用该值,但是不能修改。
public class test4 { public static void main(String[] args) { new test4().t1(2); } public void t1(final int i) { //i++; ---i是final类型的,值不允许改变 System.out.print(i); } }
程序运行输出结果为:2
- final关键字在Java中的具体用法总结
- Static关键字在Java中的具体用法总结
- java中的this关键字与final关键字的用法总结
- java中的final关键字用法
- Java中的关键字final总结
- Java关键字final, static的用法总结
- Java关键字final,static的用法总结
- Java中final关键字用法总结
- java笔记二:final关键字用法总结
- Java中final关键字用法总结
- Java中final关键字用法总结
- Java中final关键字用法总结
- java 关键字final static 用法总结
- Java - 关键字 final 的用法总结
- Java中final关键字用法总结
- Java中final关键字的用法总结。
- Java学习中final关键字用法总结
- java 中的 final 关键字 和 static 用法
- bzoj1030(dp+自动机)
- 深度学习之参数初始化(一)——Xavier初始化
- C++编程经验-返回局部变量的讨论
- (二)Java中Socket的用法-读书笔记
- Python下Fabric的使用
- final关键字在Java中的具体用法总结
- 机器学习中特征选择概述
- Codevs1515 跳
- MAC下想用ubuntu apt-get怎么办呢?
- tar 命令简单使用
- Tensorflow 在损失函数中加入正则项(Normalization)
- 两个有序数组的中位数
- 第3章 启程——Windows编程基础. 学习笔记
- Java实现操作excel表格(基于poi.jar)