Java-终结类与终结方法

终结类与终结方法

  • 用final修饰的类和方法;
  • 终结类不能被继承;
  • 终结方法不能被子类覆盖。

终结类

  • 声明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
    

终结方法

  • final 方法举例

    class Parent
    {
    public Parent() {   } //构造方法
    final int getPI() { return Math.PI; } //终结方法
    }
    
  • 说明

    • getPI()是用final修饰符声明的终结方法,不能在子类中对该方法进行覆盖,因而如下声明是错的:

      Class Child extends Parent
      {
      public Child() {}
      int getPI() { return 3.14; } //错!不允许覆盖超类中的终结方法
      }
      
发布了9 篇原创文章 · 获赞 4 · 访问量 265

猜你喜欢

转载自blog.csdn.net/weixin_43414889/article/details/105660647
今日推荐