黑马程序员技术交流社区

标题: 怎样才能让一个类不能被继承、重写、覆盖? [打印本页]

作者: 张周飞    时间: 2014-6-7 22:59
标题: 怎样才能让一个类不能被继承、重写、覆盖?
本帖最后由 张周飞 于 2014-6-13 10:39 编辑

求各位大神 指教哇{:3_66:}----怎样才能让一个类不能被继承、重写、覆盖???
作者: Boiled_Water    时间: 2014-6-7 23:12
类上加上一个修饰符final
作者: ☆枫の云    时间: 2014-6-7 23:13
类被final修饰就不能被继承,覆写是针对方法而言的,同样,被final修饰的方法是不能被子类覆写的。

如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。
使用final方法的原因有二:
第一、把方法锁定,防止任何继承类修改它的意义和实现。
第二、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。
作者: 钟成军    时间: 2014-6-7 23:29
类被重写、覆盖?只有方法有重写(覆盖和重写是一个意思)吧,为了让一个类不被继承,可以用修饰符final修饰
作者: GoodBoy123    时间: 2014-6-7 23:52
只要不被继承就谈不上重写和重载。不让这个类被继承的方法就是加上类修饰符final
作者: 夏季熬成了秋    时间: 2014-6-7 23:55
给类前面加一个final 修饰符就哦了.
作者: tangchuanping    时间: 2014-6-8 00:10
类用final修饰就可以
作者: 满面春风    时间: 2014-6-8 00:38
修改类的访问权限,可用final
作者: 华绪海    时间: 2014-6-8 00:45
可以直接用最终限定符final去修饰即可
作者: yinxjfly    时间: 2014-6-8 02:22
一个类不被继承有两种方式,
1,私有构造器,只对外提供一个获得实例的方法(单例模式,严格的说这种方式不算的)
2,类被final修饰,终态类不能被继承,只能new对象!

作者: 谭荣强    时间: 2014-6-8 02:27
你这问题有意思。
类可以被继承。但是类没有覆盖,重载之说。只有方法才有覆盖,重载的说法。
覆盖和重写一个意思:你是不是想说覆盖和重载。override overload

类不能被继承:fiinal关键字,如果是单例类(构造函数私有)也可以
方法不能覆盖:fiinal关键字
方法不能被重载:不知道




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2