package com.finaltest;
public final class GrandFather {
GrandFather(){}
}
package com.finaltest;
public class Father {
private String a="aaa";
public String b="bbb";
private final String aa="fffaaa";
public final String bb="fffbbb";
private void print1(){
System.out.println("private111");
}
private final void print1ff(){
System.out.println("finalprivate111");
}
public void print2(){
System.out.println("public222");
}
public final void print2ff(){
System.out.println("finalpublic222");
}
}
package com.finaltest;
//GrandFather是final,不可被继承,下面编译会出错
//public class Sonn extends GrandFather{
public class Sonn extends Father{
public static void main(String ss[]){
Sonn son=new Sonn();
System.out.println(son.b+"--"+son.bb);
son.b="son-bbb";
// son.bb="son-fffbbb"; final变量的值不可修改
son.print2();
son.print2ff();//父类的final方法不可重写(但可被继承)
}
public void print2(){
System.out.println("可以重写父类方法public222");
}
//父类的final方法不可重写(但可被继承)
// public final void print2ff(){
// System.out.println("finalpublic222");
// }
}
控制台打印:
bbb--fffbbb
可以重写父类方法public222
finalpublic222