本文已参与「新人创作礼」活动,一起开启掘金创作之路。
一、final关键字特性
final具有“这是无法改变的”或者“最终”的含义
- final修饰的类不能被继承
- final修饰的方法不能被子类重写
- final修饰的变量(成员变量和局部变量)是常量,只能赋值一次
二、final关键字修饰类
Java中的类被final关键字修饰后,该类将不可以被继承,也就是不能够派生子类
案例:
//使用 final关键字修饰 Animal类
final class Animal05 {
//方法体为空
}
//Dog类继承 Animal类
class Dog05 extends Animal05 {
//方法体为空
}
//定义测试类
class ExampleA05 {
public static void main(String[] args) {
Dog05 dog05=new Dog05(); //创建一个 Dog类的实例对象
}
}
//Error:(7, 21) java: 无法从最终com.company.ObjectOrientedLast.Animal05进行继承
三、final关键字的修饰方法
当一个类的方法被final关键字修饰后,这个类的子类将不能重写该方法。
案例:
//定义 Animal类
class Animal06 {
//使用 final关键字修饰 shout()方法
public final void shout() {
//程序代码
}
}
//定义 Dog类继承 Animal类
class Dog06 extends Animal06 {
//重写 Animal类的 shout()方法
public void shout() {
//程序代码
}
}
//定义测试类
class ExampleA06 {
public static void main(String[] args) {
Dog06 dog06=new Dog06(); //创建一个 Dog类的实例对象
}
}
四、final关键字修饰变量
案例:
//定义 Student类
class Student {
final String name;
public void introduce() {
System.out.println("我是一个学生,我叫"+name);
}
}
//定义测试类
class ExampleS01 {
public static void main(String[] args) {
Student stu=new Student();
stu.introduce();
}
}