A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 席杰 中级黑马   /  2014-7-31 16:51  /  1284 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 席杰 于 2014-8-6 20:27 编辑

今天我学习其他对象时,打开API,查看System类,忽然看见他的定义竟然是:public final class System,这时我一头雾水。这里怎么定义的是final,难道定义class时可以使用final吗?这里使用final与不使用final的类有什么区别吗?

11 个回复

倒序浏览
final表示该类不允许被其他类继承
回复 使用道具 举报
被final修饰的类为最终类不能产生子类
回复 使用道具 举报
江苏孙浩 发表于 2014-7-31 17:03
final表示该类不允许被其他类继承

除了这一点没有其他区别了吧?那System不能被实例化,里面定义的全部是静态方法,又是什么原因,跟final没有关系吗?
回复 使用道具 举报
席杰 发表于 2014-7-31 17:33
除了这一点没有其他区别了吧?那System不能被实例化,里面定义的全部是静态方法,又是什么原因,跟final ...

这些和final应该是无关的
回复 使用道具 举报
不能被继承:lol
回复 使用道具 举报
    如果一个类能被继承,那么类中的很多方法就能被重写,就拿String类来说吧,也是final修饰的,但是里面的方法全都是对外公开的,你只能用我这个类中定义好了的方法,但是你不能按照你的想法来对我定义的方法实现方式进行修改,从而保证了安全性。一个类被定义成final的话最主要的原因还是因为安全性的考虑吧,特别是那些工具类更是如此。
回复 使用道具 举报
江苏孙浩 发表于 2014-7-31 18:05
这些和final应该是无关的

谢谢你的解答。
回复 使用道具 举报
怀念黑海岸 发表于 2014-7-31 20:55
如果一个类能被继承,那么类中的很多方法就能被重写,就拿String类来说吧,也是final修饰的,但是里面 ...

谢谢了。:)解释的很清楚,明白了。
回复 使用道具 举报
用final类修饰类时,代表这个类不可以有子类,不允许有子类继承这个类
回复 使用道具 举报
qingxi1 来自手机 中级黑马 2014-8-7 06:57:42
11#
被final修饰的是最终类,不可以被继承
回复 使用道具 举报
F@C 中级黑马 2014-8-7 14:48:51
12#
进来学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马