final关键字
1.final标记的变量,即为常量,只能赋值一次,不能修改
代码演示:
package demo;
public class FinalDemo {
private static final int i = 50;
public static void main(String[] args) {
i = i + 10;
}
}
代码讲解:
The final field FinalDemo.i cannot be assigned 指的是FinalDemo类下的i字段不能被分配,即i这个常量不能修改值。
2.final标记的方法,子类不能重写
代码演示:
package demo;
class People{
private String name;
private int age;
public People(){
}
public People(String name, int age) {
this.name = name;
this.age = age;
}
//final修饰talk()方法
public final void talk(){
System.out.println(“父类的talk()方法”);
}
}
class Student extends People{
public final void talk(){
System.out.println(“子类的talk()方法”);
}
}
public class FinalDemo02 {
public static void main(String[] args) {
Student stu = new Student();
stu.talk();
}
}
异常讲解:
Student类重写了被final修饰的talk()方法,所以提示错误了
3.final标记类不能被继承
代码演示:
package demo;
final class People{
private String name;
private int age;
public People(){
}
public People(String name, int age) {
this.name = name;
this.age = age;
}
}
class Student extends People{
}
public class FinalDemo02 {
public static void main(String[] args) {
Student stu = new Student();
}
}