黑马程序员技术交流社区

标题: 为什么 final 不能和 abstratic 连用 [打印本页]

作者: 569015640    时间: 2015-10-7 23:09
标题: 为什么 final 不能和 abstratic 连用
求大神解答!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1

作者: 569015640    时间: 2015-10-7 23:10
我来!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
作者: 569015640    时间: 2015-10-7 23:13
我来!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
作者: longxuxu    时间: 2015-10-7 23:58
final 是最终的意思,而abstratic是抽象的,必须被实现才有意义,所以不可以同时使用
作者: Coolman    时间: 2015-10-8 00:00
abstract 和final关键字不可以同时用于修饰一个类,因为final 关键字使得类不可继承,而abstract 修饰的类如果不可以继承将没有任何意义。final修饰接口的话就是不能被实现咯,那要你接口何用??
作者: du_minchao    时间: 2015-10-8 12:52
final:       修饰方法,方法不能被重写,。
               修饰类,类是叶子类,不能被继承。
abstract: 修饰类,类中一定有abstract方法,只有子类实现了它的方法才能实例化对象,不然这个类不能创建对象, 不能用。  abstract 修饰方法,方法也要在子类中实现啊。

作者: DarkHorseFly    时间: 2015-10-8 18:37
abstract修饰的方法,子类必须重写,而final修饰的不能重写。二者矛盾
作者: wokua    时间: 2015-10-9 01:46
final 修饰的函数不能被覆盖,要是被在abstrat修饰,子类必须覆盖又无法覆盖指定编译不能通过。
作者: wokua    时间: 2015-10-9 01:48
wokua 发表于 2015-10-9 01:46
final 修饰的函数不能被覆盖,要是被在abstrat修饰,子类必须覆盖又无法覆盖指定编译不能通过。 ...

要是修饰类的话不能被继承的类用abstrat方法又有什么用呢?

作者: xiaoxinxin003    时间: 2015-10-9 02:16
六楼正解
作者: 斑点狗    时间: 2015-10-9 08:58
abstract是抽象,主要靠重写来完成功能扩展;而被final修饰的属性一旦赋初值不能修改,被final修饰的方法不能重写,被final修饰的类也是不能有扩展的,所以两者在一起是矛盾的。
作者: didixyy    时间: 2015-10-9 14:30
final的类不能被重写和继承,而abstract的类是抽象类,自己本身是没有实现的,一定需要继承才行,所以两者本身存在冲突,所以就不能同时修饰
作者: 霹雳三口组    时间: 2015-10-9 20:53
两个词实现的功能有冲突
作者: iq513394    时间: 2015-10-10 10:02
final代表终结,修饰类表明不能被继承,修饰方法则不能被覆写。  而abstract表示抽象,修饰类为抽象类,方法为抽象方法,抽象类不能实例化,只能实例子类,抽象方法必须覆写。两个关键字修饰同一个类或方法是冲突的,当然不能连用。
作者: 徐慧shanghai    时间: 2015-10-10 13:17
final是不能被修改的意思
abstract是要被重写必定需要修改
所以就产生了冲突
所以是不能一起使用的
作者: CHENVICTORY    时间: 2015-10-10 22:19
这就要根据他们所修饰的东西所具有的特性来说了。
作者: CHENVICTORY    时间: 2015-10-10 22:23
这就要根据他们修饰的东西的特性来说了, final修饰的类不可被继承,而abstract修饰的类又需要子类进行实现,这样如果两个词同时修饰一个类,就没有意义了。同样final修饰的方法不能被重写,而abstract修饰的方法又需要子类重写,这样同时使用有没有意义了。
作者: 雨中的泪    时间: 2015-10-12 14:43
因为final关键字只能被调用一次而且不实例化,二abdtrstic使抽象的想要调用他必须要先实例化他所以他们不能配对使用
作者: chengaq0    时间: 2015-10-12 15:08
final修饰类,那么这个类就不能被继承,只能实例化
abstract修饰类,只能被继承,而不能实例化。
他俩是相反的,不可能连用
作者: 雨来    时间: 2015-10-13 15:02
final 修饰的类不能  不能有子类 被继承  变量不能重新赋值;    而abstract  修饰的类是抽象类 抽象类是可以被继承的
作者: 罗志辉    时间: 2015-10-16 12:53
abstract就是一把锁,被锁上的东西(功能),必须拿钥匙来打开(复写)。
final就是铁门,把东西用铁门焊死(再也打不开了,不能复写了)。
既要锁上,打算日后拿钥匙来开启,又用铁门焊死,这不是傻冒么
作者: 1312564637    时间: 2015-10-20 17:04
如果你这个类是抽象类的话,只能通过他的子类来实例化,而被final修饰的类时是不能有子类的,所以他前后矛盾,
作者: 孤单背影    时间: 2015-10-22 23:51
final修饰后是太监类了里面的东西是只能用不能改,而抽象类里的方法是必须重写后才能使用,所以你把他们放一块是让动还是不让动。要玩死他?

作者: 月明    时间: 2015-10-29 01:10
final修饰的类不能被继承 而abstract只有被继承才有意义 final修饰的方法不能被重写 abstract修饰的类必须要被重写
作者: Seven、HQ    时间: 2015-10-29 18:34
final:修饰变量,方法,类             abstract用于类名前表示一个抽象类,abstract用于成员方法前表示抽象方法,而抽象类内部至少要有一个抽象方法,这个跟final不能一起用,至于为什么,你一想就清楚了,抽象类本身必须有子类需要实现它的方法,但是final类又不能有子类,这不矛盾了么,所以不能一起用。
作者: 韩文昊    时间: 2015-11-1 11:01
final 是最终的意思,而abstratic是抽象的,必须被实现才有意义,所以不可以同时使用
作者: zhengsx    时间: 2015-11-4 22:29
abstract用来修饰类,必须有子类继承,用来修饰方法,必须有子类重写才能用。但final修饰的类不可被继承,修饰的方法不可被重写。那还定义来做什么?
作者: 余旋    时间: 2015-11-7 19:42
一个不能被继承的抽象类存在没有任何意义,所以final和abstract不能连用
作者: 孙建志    时间: 2015-11-8 00:20
因为被final修饰的类是最终类,被final修饰的方法不能被继承;而abstract修饰的类要求子类强制重写父类的方法,这和final是矛盾的,所以不能共用
作者: ly631960324    时间: 2015-11-15 00:18
abstract不可与下列修饰词共同修饰方法:
1) final:被final修饰的类为最终类,不可以被改变,而有abstract修饰的方法被子类继承时,子类需要复写这个抽象方法,所以这是矛盾的
2)private:被private修饰的方法都不能被子类继承,何谈被子类复写
3)static:被static修饰的方法可以直接被类名.调用,而直接调用抽象方法是没有意义的
作者: 袁有福123    时间: 2015-11-19 21:58
final修饰的不能被继承  而abstratic是需要被继承的  所以两者不能同时使用
作者: 隔壁马良    时间: 2015-11-23 00:34
du_minchao 发表于 2015-10-8 12:52
final:       修饰方法,方法不能被重写,。
               修饰类,类是叶子类,不能被继承。
abstract:  ...

赞一个,这种概念性的知道是那个意思就是说不上来
作者: 隔壁马良    时间: 2015-11-23 00:39
wokua 发表于 2015-10-9 01:48
要是修饰类的话不能被继承的类用abstrat方法又有什么用呢?

所以不能一起使用啊
作者: 子午鼬    时间: 2015-12-31 21:07
被abstract修饰的类要被复写,而被final修饰的类却不能被继承,两者矛盾.。2.被abstract修饰的方法是抽象方法,其类也一定是抽象的,被抽象的类或者接口被继承或者实现时,必须重写,而被final修饰的方法不能被重写,两者之间矛盾
作者: LoveGG    时间: 2016-4-17 21:29
final修饰的方法表示这个方法不能被子类重写;
abstract修饰的方法表示父类需要此方法,但是不知道此方法应该如何实现,希望子类重写该方法具体的实现方式;
所以,这两个修饰符不能连用。
作者: 1191065242    时间: 2016-5-1 19:11
本帖最后由 1191065242 于 2016-5-1 19:13 编辑

final修饰的类是不能被继承的,方法是是不能被重写的,而abstract修饰的类中可能有抽象方法,需要你子类去继承重写方法,所以不能一起使用




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