是否可以继承String类

本文详细解释了在Java中使用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指示符,但这样做没有任何意义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值