首页 > 编程语言 > 详细

java解惑之final

时间:2015-04-17 11:20:59      阅读:255      评论:0      收藏:0      [点我收藏+]
<span style="font-size:18px;">import java.util.*;
class J{
        public static final int count = 011;
}
public class SeventyFirst extends J{
        public static final int count = 022;
        public static void main(String[] args){
                System.out.println(count);
        }
}</span>

结果:18


<span style="font-size:18px;">import java.util.*;
class J{
        public static final int count = 011;
        public final int fun(){
                return count;
        }
}
public class SeventyFirst extends J{
        public static final int count = 022;
        public static void main(String[] args){
                System.out.println(count);
                System.out.println(new SeventyFirst().fun());
        }
        /*public final int fun(){
                return count;
        }*/
}
</span>


如果不注释掉fun

<span style="font-size:18px;">SeventyFirst.java:14: 错误: SeventyFirst中的fun()无法覆盖J中的fun()
	public final int fun(){
	                 ^
  被覆盖的方法为final
1 个错误</span>

注释掉之后

结果:

18
9
看到区别了吧,

final对于方法和属性在继承方面是有不同的作用的。

当方法被final修饰时,方法不能被重写或隐藏

当属性被final修饰时,方法可以被隐藏。

属性隐藏里可以看到,当属性被隐藏后,在子类里可以通过super访问,在这里有提提供了一种方法,那就是可以在父类里提供一个final类型的get方法,来返回被隐藏的属性

java解惑之final

原文:http://blog.csdn.net/havedream_one/article/details/45093977

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!