java语言本身的特性,就像java中,为什么int是32字节?

解决方案 »

  1.   

    无语,楼主好奇心真强,
    因为javac 通不过
    为什么javac通不过?
    因为jvm不支持
    为什么jvm不支持
    因为这是sun 公司干的
    为什么sun这么干?
    ...
    ...
    ...
      

  2.   

    sun 的设计人认为此类的功能已经相当完善,不需要用户再往下extends了
      

  3.   

    规定声明为final的类就是不可以继承,就好象声明为final的变量就是常量一样,没有什么可以解释的,也许现在的认识还比较浅薄
      

  4.   

    不为什么,就是这么规定的
    如果你希望被继承,不定义成final就行了
      

  5.   

    楼上的各位好像没有和俺想到一块去。呜呜呜!换个问法吧:声明为final的class有哪些地方不符合继承的特性呢?或者说派生类(子类)的父类为什么不能是被声明为final的class,被声明为final的父类有哪些地方妨碍了子类的行为?
      

  6.   

    final类不允许继承当然是有意义,如String是一个final类,为什么?因为如果不是这样,你继承了它然后在你定义的方法中随便修改这个类的方法(如什么toString hashCode之类的)这样一来可能出现非常多的不可预知的问题,所以String是一个final类,绝对不容许方法的覆盖
      

  7.   

    大家多半都是想当然,规则的制定也是有原因的呀!ChDw说的应该是我所想要的答案吧!各位能否继续深入些!
      

  8.   

    主要是为了不让改啊
    如对String类而言,一个String对象生成了,就不能改了(String类在它的生存周期是固定不变的,它没有提供任何的修改方法)
    如果不是final的,你可以自己写个ExtendString继承自String
    你可能在你的ExtendString里加上能够修改String代码的内容,
    从而String就是可变的了,这就产生问题了
    可以在子类中用方法来恶意修改类的可变性.