为什么最终类不能被继承而最终方法可以被继承?

斯拉瓦尼

我在类和方法之间使用“ final”关键字时感到非常困惑,即为什么final方法仅支持继承但不支持final类

final class A{
    void print(){System.out.println("hello world");}
}

class Final extends A{
    public static void main(String[] args){
        System.out.println("hello world");
    }
}

错误:

不能从Final A类继承Final扩展A {FINAL METHOD IS..。

class Bike{
    final void run(){System.out.println("run");}
}
class Honda extends Bike{
    public static void main(String[] args){
        Honda h=new Honda();
        h.run();
    }
}
斯蒂芬·C

为什么最终类不能被继承而最终方法可以被继承?

为什么?因为对于类和方法final 意味着不同的东西

为什么这意味着不同的事情?因为那是Java语言设计人员选择设计语言的方式!

finalJava中关键字具有三种不同的含义

  • 一个final类不能扩展。

  • final方法不能被重写。

  • 一个final变量不能分配给它已被初始化后。

他们为什么决定final在不同的上下文中使用不同的含义?可能是因为它们不需要保留2或3个不同的关键字。(事后看来,这可能不是最好的决定。但是,这值得商and……而辩论可能是浪费时间。)

值得注意的是,其他关键字在Java中具有多种含义。例如staticdefault(在Java 8中)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么MDB类不能是最终的

来自分类Dev

允许模拟类从最终类继承

来自分类Dev

Java Applet-无法从最终类继承

来自分类Dev

无法从最终的Snackbar继承

来自分类Dev

无法从最终课程继承

来自分类Dev

为什么说静态方法不能被继承?

来自分类Dev

“不能继承的最后一节课”的错误,但类不是最终的

来自分类Dev

为什么在结构上允许接口继承以及为什么不能继承类

来自分类Dev

为什么类级别的typedef不能从模板继承?

来自分类Dev

为什么我不能从多个类继承?

来自分类Dev

Solrj-由于HTTPSolrServer而无法从最终类错误继承

来自分类Dev

为什么Java类不能既是抽象类又是最终类

来自分类Dev

为什么Java类不能既是抽象类又是最终类

来自分类Dev

为什么类 X 可以从 Collection<X> 继承

来自分类Dev

为什么继承类静态方法而不继承接口静态方法?

来自分类Dev

为什么所有方法都不从类继承?

来自分类Dev

为什么所有方法都不从类继承?

来自分类Dev

为什么我不能继承此变量?

来自分类Dev

为什么不能从Interface继承

来自分类Dev

为什么不能扩展接口“泛型方法”并将其类型缩小到继承的接口“类通用”?

来自分类Dev

用Java继承的最终常量值?

来自分类Dev

继承最终的抽象类属性

来自分类Dev

为什么我不能像库类一样快速继承多个类

来自分类Dev

为什么不能将注释@SafeVarargs应用于非最终实例方法?

来自分类Dev

Switch中的静态最终整数:为什么不能这样做?

来自分类Dev

为什么if块不能在最终情况下运行?

来自分类Dev

Switch中的静态最终整数:为什么不能这样做?

来自分类Dev

为什么在switch语句中最终的Byte不能编译?

来自分类Dev

为什么AppDelegate类从UIResponder继承?

Related 相关文章

  1. 1

    为什么MDB类不能是最终的

  2. 2

    允许模拟类从最终类继承

  3. 3

    Java Applet-无法从最终类继承

  4. 4

    无法从最终的Snackbar继承

  5. 5

    无法从最终课程继承

  6. 6

    为什么说静态方法不能被继承?

  7. 7

    “不能继承的最后一节课”的错误,但类不是最终的

  8. 8

    为什么在结构上允许接口继承以及为什么不能继承类

  9. 9

    为什么类级别的typedef不能从模板继承?

  10. 10

    为什么我不能从多个类继承?

  11. 11

    Solrj-由于HTTPSolrServer而无法从最终类错误继承

  12. 12

    为什么Java类不能既是抽象类又是最终类

  13. 13

    为什么Java类不能既是抽象类又是最终类

  14. 14

    为什么类 X 可以从 Collection<X> 继承

  15. 15

    为什么继承类静态方法而不继承接口静态方法?

  16. 16

    为什么所有方法都不从类继承?

  17. 17

    为什么所有方法都不从类继承?

  18. 18

    为什么我不能继承此变量?

  19. 19

    为什么不能从Interface继承

  20. 20

    为什么不能扩展接口“泛型方法”并将其类型缩小到继承的接口“类通用”?

  21. 21

    用Java继承的最终常量值?

  22. 22

    继承最终的抽象类属性

  23. 23

    为什么我不能像库类一样快速继承多个类

  24. 24

    为什么不能将注释@SafeVarargs应用于非最终实例方法?

  25. 25

    Switch中的静态最终整数:为什么不能这样做?

  26. 26

    为什么if块不能在最终情况下运行?

  27. 27

    Switch中的静态最终整数:为什么不能这样做?

  28. 28

    为什么在switch语句中最终的Byte不能编译?

  29. 29

    为什么AppDelegate类从UIResponder继承?

热门标签

归档