package joker;
//这个执行单元用来讲解final关键字
//final可以修饰代码块,变量,方法,类,,
//将一个类定义为final 表示,这个类永远都不能被继承
final class not{
final void test() {
}
}
//class yes extends not{//报错 ,这个类无法被继承
//}
class Father{
final void test() {
}
private final void test1() {
}
private void test2() {
System.out.println("yes");
}
}
public class Final extends Father{
//void test() {//报错 ,final修饰的方法是不能够被重写的
//}
void test1() {//如果在定义父类final方法的同时设置为private ,便可以重写那个方法,子类继承父类所有东西(除了构造方法)
}//但是子类却无法访问父类的所有私有属性和方法
public static void main(String[] args) {
Final t=new Final();
}
}
//final 修饰变量和引用。
class Test{
final int i=0;//final修饰一个变量,必须进行初始化
final static int cantchange=1;//一个由final和static修饰的域是一段不能被改变的存储空间
public static void main(String[] args) {
final Father f=new Father();
// f=new Father();//final修饰的引用,只能指向一个对象,不能够更改,这里报错了
// i=1;//一经定义,不能被更改
// f的方法和属性可以改变,但是它不能再指向其他域,数组也是一样,因为数组也是引用
}
}