黑马程序员技术交流社区

标题: 关于final的问题 [打印本页]

作者: crazystraw    时间: 2014-6-30 16:10
标题: 关于final的问题
本帖最后由 crazystraw 于 2014-7-1 17:51 编辑

如果一个类有一个被final修饰的方法,那么这个类还可以被继承么?如果可以,那么被final修饰的类不可以被覆盖?

作者: 曾倩倩    时间: 2014-6-30 16:27
当然可以,但是这样的方法不能在子类里被重写(override)了。 把一个方法标为final的目的也就在于此:那是在说,好了,到此为止,不许再对我进行修改了。把一个类标为final的情况也是一样,只不过整个类都被固定了。
作者: houyudong    时间: 2014-6-30 16:49
被final修饰的类是不能够被继承的,但是他可以继承其他类,一个被final修饰的方法不能被复写,但是拥有final方法的类可以被继承,只是这个final方法不能够被覆写,可以把它看做是一个私有的方法,因为私有的方法也不能被继承,还有你说的覆盖我有些不明白,java里面对方法操作可以使复写和重载,没听过覆盖呢,被final修饰的类是一个最终类,而且类没有腹部覆盖这一说,只能说类可以继承或被继承,
作者: weitz    时间: 2014-6-30 17:20
final修饰就可以看成不变的东西,任何尝试修过他的动作都是不可以的
作者: 木华    时间: 2014-6-30 17:23
不可以被继承,类有覆盖吗?
作者: 叶飞翔    时间: 2014-6-30 19:04
houyudong 发表于 2014-6-30 16:49
被final修饰的类是不能够被继承的,但是他可以继承其他类,一个被final修饰的方法不能被复写,但是拥有fina ...

这位大神说的很详细了,有一个被final修饰的方法的类是可以被继承的,但是子类不能再覆盖此方法了。你后面
的意思是这个类被继承时方法能不能被覆盖是吧?不能被覆盖的。
作者: houyudong    时间: 2014-6-30 21:17
叶飞翔 发表于 2014-6-30 19:04
这位大神说的很详细了,有一个被final修饰的方法的类是可以被继承的,但是子类不能再覆盖此方法了。你后 ...

是复写,不是覆盖,java中没有覆盖这一说,一个字的意思差别就很大了,
作者: 叶飞翔    时间: 2014-7-1 08:14
houyudong 发表于 2014-6-30 21:17
是复写,不是覆盖,java中没有覆盖这一说,一个字的意思差别就很大了,

有覆盖这个说法吧,网上好多这种叫法,毕老师的视频中也有这样的说法,跟复写的意义是一样的。




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