下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

Java学者须知的java语言中的final指示符类

作者:课课家教育     来源: http://www.kokojia.com点击数:827发布时间: 2016-02-29 20:04:42

标签: java数据成员java编程java开发

大神带你学编程,欢迎选课

  如果说整个类都是final(在它的定义前冠以final关键字),就表明自己不希望从这个类继承,或者不允许其他任何人采取这种操作。换言之,出于这样或那样的原因,我们的类肯定不需要进行任何改变;或者出于安全方面的理由,我们不希望进行子类化(子类处理)。

Java学者须知的java语言中的final指示符类_java数据成员_java编程_课课家

  除此以外,我们或许还考虑到执行效率的问题,并想确保涉及这个类各对象的所有行动都要尽可能地有效。如下所示:

  //: 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指示符,但这样做没有任何意义。

赞(20)
踩(4)
分享到:
华为认证网络工程师 HCIE直播课视频教程