//final:修饰符 可以用来修饰类、成员方法、成员变量
//final修饰的类,不能被继承,也不能有子类
//举个栗子给大家看一下
final class Person{
public void sleep(){
System.out.println("我是person,我爱睡觉");
}
}
class Student extends Person{
//到这里就写不下去了,系统会提示你编译错误。
//说明final修饰的类,不能被继承。二话不说,看图!F.1
}
//接着说Final修饰的成员方法:
//final修饰的方法,可以被子类调用,但是不可以被重写
class Person{
final void sleep(){
System.out.println("我是父类的final修饰的方法");
}
}
class Student{
public void sleep(){//写到这里就会报错了。因为父类Person类的sleep方法是用Fianl修饰的
System.out.println("我是子类,我在重写父类的sleep方法");
//报错内容看图F.2
}
}
//接着说一下Final修饰的成员变量
//final修饰的成员变量是常量,不能被修改
class Person{
final int AGE = 18;
}
public class Student{
public static void main(String[] args){
Person p = new Person();
p.AGE = 20;
//大家可以看到这里会直接报编译错误,原因简单粗暴,因为final用来修饰常量的
}
}
//二话不多说,看图!F.3
/*
最后做一个简单的总结:
final可以用来修饰类、成员方法和成员变量
区别:
final修饰的类,不能被继承,不能有子类
final修饰的方法:可以被子类调用,但是不可以被子类重写
final修饰的变量(也叫自定义常量):
1、可以被子类调用,但是不可以更改变量的值
2、自定义常量必须初始化,并且一旦初始化则不可再被更改
3、自定义常量的命名规则:一般全是大写
*/