A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

abstract 与哪些关键字不能共存为什么?

8 个回复

正序浏览
abstract不能和final,static,private共存. 被final修饰后成员变量不能被改变,成员方法不能被重写;被static修饰后,变成类.方法(),对抽象方法来说没意义;被private修饰后被私有,不能被重写,与abstract矛盾
回复 使用道具 举报
abstract不能和final,static,private共存
回复 使用道具 举报
cat73 黑马帝 2016-8-2 18:45:17
7#
不能共存的很多呀。。
比如 import、instanceof、if、while、for、synchronized 等等。
所以说你的问题并不是很准确。
应该是:哪些可以与方法共存的关键字不能与 abstract 共存?
回复 使用道具 举报

懂得就好
回复 使用道具 举报
    可以可以   
回复 使用道具 举报
suncool 发表于 2016-8-1 18:20
1).private :因为一个abstract方法需要被重写,所以不能修饰为private;
2).final:因为一个abstract方法需 ...

学习了
回复 使用道具 举报
suncool 发表于 2016-8-1 18:20
1).private :因为一个abstract方法需要被重写,所以不能修饰为private;
2).final:因为一个abstract方法需 ...

学习了
回复 使用道具 举报
1).private :因为一个abstract方法需要被重写,所以不能修饰为private;
2).final:因为一个abstract方法需要被重写。被final修饰的方法是不能被重写的,所以不能同final共存;
3).static:因为一个abstract方法没有方法体。静态方法需要对方法体执行内容分配空间,所以不能同static共存;(abstract是没有实现的,不能产生对象,而是static是属于类的,类本身是已经存在的对象)
4).synchronized: 是同步的,然而同步需要具体的操作才能同步,但, abstract是只有声明没有实现的(即,使用synchronized关键字的是需要有具体的实现同步的操作的,但是使用abstract是只有声明而没有实现的,这样就产生了冲突)
5).native:他们本身的定义就是冲突的,native声明的方法是移交本地操作系统实现的,而abstract是移交子类对象实现的,同时修饰的话,导致不知道谁实现声明的方法
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马