WEB开发网      婵犻潧鍊婚弲顐︽偟椤栨稓闄勯柦妯侯槸閻庤霉濠婂骸浜剧紒杈ㄥ笚閹峰懘鎮╅崹顐ゆ殸婵炴垶鎸撮崑鎾趁归悩鐑橆棄闁搞劌瀛╃粋宥夘敃閿濆柊锕傛煙鐎涙ê鐏f繝濠冨灴閹啴宕熼鍡╀紘婵炲濮惧Λ鍕叏閳哄懎绀夋繛鎴濈-楠炪垽鎮归崶褍妲婚柛銊ュ缁傚秹鏁撻敓锟� ---闂佹寧娲╅幏锟�
开发学院WEB开发Jsp final类 阅读

final类

 2008-01-05 10:45:01 来源:WEB开发网 闂侀潧妫撮幏锟�闂佸憡鍨电换鎰版儍椤掑倵鍋撳☉娆嶄沪缂傚稄鎷�婵犫拃鍛粶闁靛洤娲ㄩ埀顒佺⊕閵囩偟绱為敓锟�闂侀潧妫撮幏锟�  闂佺ǹ绻楀▍鏇㈠极閻愭娑樷枎閹邦剛娉氶梺鍛婎殔濞层劌鈻撻幋婵愬殫妞ゆ梻鍘х憴锟�
核心提示:假如说整个类都是final(在它的定义前冠以final要害字),就表明自己不希望从这个类继续,final类,或者不答应其他任何人采取这种操作,换言之,编译器此时有相同的效率选择,可为final类内的一个方法添加final指示符,出于这样或那样的原因,我们的类肯定不需要进行任何改变;或者出于安全方面的理由

  假如说整个类都是final(在它的定义前冠以final要害字),就表明自己不希望从这个类继续,或者不答应其他任何人采取这种操作。换言之,出于这样或那样的原因,我们的类肯定不需要进行任何改变;或者出于安全方面的理由,我们不希望进行子类化(子类处理)。
  
  除此以外,我们或许还考虑到执行效率的问题,并想确保涉及这个类各对象的所有行动都要尽可能地有效。如下所示:
  
  //: Jurassic.java
  // Making an entire class final
  
  class SmallBrain {}
  
  final class Dinosaur {
   int i = 7;
   int j = 1;
   SmallBrain x = new SmallBrain();
   void f() {}
  }
  
  //! class Further extends Dinosaur {}
  // error: Cannot extend final class 'Dinosaur'
  
  public class Jurassic {
   public static void main(String[] args) {
    Dinosaur n = new Dinosaur();
    n.f();
    n.i = 40;
    n.j++;
   }
  } ///:~
  
  注重数据成员既可以是final,也可以不是,取决于我们具体选择。应用于final的规则同样适用于数据成员,无论类是否被定义成final。将类定义成final后,结果只是禁止进行继续——没有更多的限制。然而,由于它禁止了继续,所以一个final类中的所有方法都默认为final。因为此时再也无法覆盖它们。所以与我们将一个方法明确声明为final一样,编译器此时有相同的效率选择。
  
  可为final类内的一个方法添加final指示符,但这样做没有任何意义。

Tags:final

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接