黑马程序员技术交流社区

标题: 一个面试曾经面试问我的。 [打印本页]

作者: 一诺千金    时间: 2014-3-3 17:24
标题: 一个面试曾经面试问我的。
抽象类可以北Final修饰吗?
作者: 戚兴海    时间: 2014-3-3 17:36
必须不可以啊。。修饰了怎么继承呢,定义这个抽象类貌似就没有什么意义了
作者: 薛旻    时间: 2014-3-3 17:42
final最终修饰了,已经不能更改了,那抽象类里定义的功能也不能修改了,那么子类无法继承抽象类然后实现其中的方法,这个抽象类也就没有意义了。所以不能。
作者: 一诺千金    时间: 2014-3-3 17:45
那抽象类可以继承肥抽象类吗?
作者: 枫儿    时间: 2014-3-3 17:47
那如何继承呢  这个永远只能抽象的类 有何用
作者: 乔青山    时间: 2014-3-3 18:08
可以,但是这个类就没意义了,是不是这个意思?
作者: 一诺千金    时间: 2014-3-3 18:20
乔青山 发表于 2014-3-3 18:08
可以,但是这个类就没意义了,是不是这个意思?

貌似,面试的人就是想要这样的答案吧
作者: 黄翔    时间: 2014-3-3 18:23
final关键字的作用是阻止某些类定义子类,以确保它们不会在子类中改变语义。
而抽象类是将子类中的成员向上抽取形成更高层次的通用超类。
两者是相互矛盾的,一个是阻止继承,一个就是相对继承才能成立的。

扩展抽象类可以有两种选择:一种是在子类中定义部分抽象方法或抽象方法也不定义,这样就必须将子类也标记为抽象类;另外一种是定义全部的抽象方法,这样一来,子类就是抽象的了。
所以抽象类可以继承抽象类。
作者: 黄翔    时间: 2014-3-3 18:24
另外一种是定义全部的抽象方法,这样一来,子类就不是抽象的了。
作者: Dora    时间: 2014-3-3 18:52
不可以啊,如果用final修饰了就没有子类了,那么函数中定义的抽象方法还有什么意义。
作者: Dora    时间: 2014-3-3 18:53
final类并不多有String类是final的
final类都有哪些可以自己查一查然后记住,我面试的时候有考到这个问题的

作者: 乔青山    时间: 2014-3-3 19:00
一诺千金 发表于 2014-3-3 18:20
貌似,面试的人就是想要这样的答案吧

写在类前面不会报错,但是这个类就没意义了。所以说到底可不可以,可以呗。
作者: 晴天_雨天    时间: 2014-3-3 19:09
肯定不行啊,两者要求矛盾了
作者: 行如止水    时间: 2014-3-3 19:30
这个应该是不能的
作者: 遗忘的青春年华    时间: 2014-3-3 23:26
java基础里面的,你看看final那块吧,不可以修饰抽象类,final修饰的都不可以被改变,而接口里面的抽象方法用的时候必须要被重写的,你用final修饰,还怎么用接口
作者: 漠然~回首℃    时间: 2014-3-3 23:40
这个明显的不可以啊,抽象类是一类事物的共性,可以让子类继承得以实现具体方法,而final是不让子类访问重写,明显冲突!
作者: chenfc8578    时间: 2014-3-3 23:40
不可以,抽象类的主要作用就是让子类去继承并覆写类中的抽象方法。如果被final修饰的话,该类就不可以被继承,那抽象类就没有意义了。




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