第3节 终结类与终结方法
推荐给好友
打印
加入收藏
更新于2009-05-10 13:41:21

7.3 终结类与终结方法

被final修饰符修饰的类和方法
终结类不能被继
终结方法不能被当前类的子类重写

7.3.1 终结类

终结类的特点
不能有派生类
终结类存在的理由
安全: 黑客用来搅乱系统的一个手法是建立一个类的派生类,然后用他们的类代替原来的类
设计: 你认为你的类是最好的或从概念上你的类不应该有任何派生类

7.3.1 终结类——一个例子

声明ChessAlgorithm 类为final 类
final class ChessAlgorithm { . . . }
如果写下如下程序:
class BetterChessAlgorithm extends ChessAlgorithm { … }
编译器将显示一个错误
Chess.java:6: Can't subclass final classes: class ChessAlgorithm
class BetterChessAlgorithm extends ChessAlgorithm { ^1 error

7.3.2 终结方法

终结方法的特点
不能被派生类覆盖
终结方法存在的理由
对于一些比较重要且不希望子类进行更改的方法,可以声明为终结方法。可防止子类对父类关键方法的错误重写,增加了代码的安全性和正确性
提高运行效率。通常,当java运行环境(如java解释器)运行方法时,它将首先在当前类中查找该方法,接下来在其超类中查找,并一直沿类层次向上查找,直到找到该方法为止

final 方法举例









上一节         下一节
相关链接


 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.