final关键字用法
修饰类当用final去修饰一个类的时候,表示这个类不能被继承。注意:a. 被final修饰的类,final类中的成员变量可以根据自己的实际需要设计为fianl。b. final类中的成员方法都会被隐式的指定为final方法。说明:在自己设计一个类的时候,要想好这个类将来是否会被继承,如果可以被继承,则该类不能使用fianl修饰,在这里呢,一般来说工具类我们往往都会设计成为一个fianl类。在JDK中,被设计为final类的有String、System等。
2.修饰方法被final修饰的方法不能被重写。
注意:
a. 一个类的private方法会隐式的被指定为final方法。
b. 如果父类中有final修饰的方法,那么子类不能去重写。
3. 修饰成员变量
注意:
a. 必须要赋初始值,而且是只能初始化一次。
4. 修饰成员变量
注意:
a. 必须初始化值。
b. 被fianl修饰的成员变量赋值,有两种方式:1、直接赋值 2、全部在构造方法中赋初值。
c. 如果修饰的成员变量是基本类型,则表示这个变量的值不能改变。
d. 如果修饰的成员变量是一个引用类型,则是说这个引用的地址的值不能修改,但是这个引用所指向的对象里面的内容还是可以改变的。
总结:final关键字:
- final可以修饰类,方法,变量。
- final修饰的类不可以被继承。
- final修饰的方法不可以被覆盖。
- final修饰的变量是一个常量,只能被赋值一次。
- 内部类只能访问被final修饰的局部变量。
测试:
(1).final修饰的类不可以被继承。
final class Fu{
}
class Zi extends Fu{
}
class FinalDemo{
public static void main(String[] args){
}
}
(2)final修饰的方法不可以被覆盖。
(3)final修饰的变量是一个常量,只能被赋值一次。
/*
1.final修饰的类不能被继承
2.final修饰的变量是一个常量,只能被赋值一次
3.final修饰的方法不能被子类重写
*/
class Fu{
final void talk(){
System.out.println("爸爸会讲中文......");
}
}
class Zi extends Fu{
int age = 18;
void show(){
age = 13;
System.out.println(age);
}
void talk(){
System.out.println("儿子会讲中文......");
}
}
class FinalDemo{
public static void main(String[] args){
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/114830.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...