标签:return out nal 基本数据类型 ide 引用 extends private print
final关键字代表最终、不可改变的内容。
含义:当前这个类不能有任何的子类。(太监类)
格式:
public final class 类名称{
// ......
}
注意:一个类如果是final的,那么其中的所有成员方法都无法进行覆盖重写(因为没有子类)
当final关键字用来修饰一个方法的时候,这个方法就是最终方法,不能被覆盖重写
格式:
修饰符 final 返回值类型 方法名称(参数列表){
// 方法体
}
注意事项:
对于类,方法来说,abstract和final关键字不能同时用,因为矛盾
public void Fu{
public final void method(){
System.out.println("父类方法执行~");
}
}
public void Zi extends Fu{
// 会发生报错
@Override
public void method(){
System.out.println("重写父类方法~")
}
}
对于基本数据类型来说:
不可变说的是变量中的【数据】不可变
一次赋值,终身不变
public static void main(String[] args){
final int num = 10;
System.out.println(num);// 10
// num = 20; 报错
}
对于引用类型来说是【地址值】不可变
// 定一个学生类
public class Student{
private String name;
public Student(){
}
public Student(String name){
this.name = name;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
}
public class Final{
public static void main(String[] args){
final Stundet stu = new Student("雷神");
System.out.println(stu); // 雷神
//错误写法,final的引用类型变量的地址值不可改变
// stu = new Student("蛇女");
// 但是方法可以调用
stu.setName("金刚狼");
System.out.println(stu);// 金刚狼
}
}
使用final关键字修饰后,那么这个变量是不可能改变的。
成员变量初始化的方法有两种,只能二选一:
显示初始化:
public class User{
final String USERNAME = "张三";
private int age;
}
构造方法初始化
public class User{
final String USERNAME;
private int age;
public User(String username,int age){
this.USERNAME = username;
this.age = age;
}
}
注意:
? 被final修饰的常量名称,一般都有书写规范,所有字母都大写。
举例:
public class Person{
private final String name/* = 雷神*/;
public Person(){
name = "蜘蛛侠";
}
public Person(String name){
this.name = name;
}
public String getName(){
return name;
}
// public void setName(String name){
// this.name = name;
//}
}
标签:return out nal 基本数据类型 ide 引用 extends private print
原文地址:https://www.cnblogs.com/anke-z/p/12430897.html