黑马程序员技术交流社区

标题: abstract 与哪些关键字不能共存为什么? [打印本页]

作者: 刘小白    时间: 2016-8-1 15:46
标题: abstract 与哪些关键字不能共存为什么?
abstract 与哪些关键字不能共存为什么?
作者: suncool    时间: 2016-8-1 18:20
1).private :因为一个abstract方法需要被重写,所以不能修饰为private;
2).final:因为一个abstract方法需要被重写。被final修饰的方法是不能被重写的,所以不能同final共存;
3).static:因为一个abstract方法没有方法体。静态方法需要对方法体执行内容分配空间,所以不能同static共存;(abstract是没有实现的,不能产生对象,而是static是属于类的,类本身是已经存在的对象)
4).synchronized: 是同步的,然而同步需要具体的操作才能同步,但, abstract是只有声明没有实现的(即,使用synchronized关键字的是需要有具体的实现同步的操作的,但是使用abstract是只有声明而没有实现的,这样就产生了冲突)
5).native:他们本身的定义就是冲突的,native声明的方法是移交本地操作系统实现的,而abstract是移交子类对象实现的,同时修饰的话,导致不知道谁实现声明的方法
作者: 乐仔其中    时间: 2016-8-1 21:35
suncool 发表于 2016-8-1 18:20
1).private :因为一个abstract方法需要被重写,所以不能修饰为private;
2).final:因为一个abstract方法需 ...

学习了
作者: 乐仔其中    时间: 2016-8-1 21:38
suncool 发表于 2016-8-1 18:20
1).private :因为一个abstract方法需要被重写,所以不能修饰为private;
2).final:因为一个abstract方法需 ...

学习了
作者: pwn582253080    时间: 2016-8-1 21:49
    可以可以   
作者: suncool    时间: 2016-8-2 17:10
乐仔其中 发表于 2016-8-1 21:35
学习了

懂得就好
作者: cat73    时间: 2016-8-2 18:45
不能共存的很多呀。。
比如 import、instanceof、if、while、for、synchronized 等等。
所以说你的问题并不是很准确。
应该是:哪些可以与方法共存的关键字不能与 abstract 共存?
作者: aiziji123    时间: 2016-8-2 18:59
abstract不能和final,static,private共存
作者: aiziji123    时间: 2016-8-2 19:03
abstract不能和final,static,private共存. 被final修饰后成员变量不能被改变,成员方法不能被重写;被static修饰后,变成类.方法(),对抽象方法来说没意义;被private修饰后被私有,不能被重写,与abstract矛盾




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