关闭

关于final关键字的理解

标签: stringclass
670人阅读 评论(0) 收藏 举报
分类:
 
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

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1307793次
    • 积分:14634
    • 等级:
    • 排名:第797名
    • 原创:320篇
    • 转载:247篇
    • 译文:0篇
    • 评论:98条