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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张综 中级黑马   /  2012-11-11 21:10  /  1934 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

abstract关键字除了和final    private,冲突还有哪些关键字和她冲突。

5 个回复

倒序浏览
还与static关键字冲突。修饰符只能加public或者protected。
回复 使用道具 举报
王振 发表于 2012-11-11 21:19
还与static关键字冲突。修饰符只能加public或者protected。

接口中的成员变量的属性默认是什么?没记错的话是public static final吧
回复 使用道具 举报
郭阳 发表于 2012-11-11 22:22
接口中的成员变量的属性默认是什么?没记错的话是public static final吧

这里只是针对方法说的。楼主问的也是这个意思,因为用到abstract的要么是方法要么是类。
之所以abstract会与这些关键字冲突很大程度上都是要求重写方法与不能重写方法的冲突。
回复 使用道具 举报
王振 发表于 2012-11-11 22:29
这里只是针对方法说的。楼主问的也是这个意思,因为用到abstract的要么是方法要么是类。
之所以abstract ...

嗯嗯看错了。。
回复 使用道具 举报
abstract 是抽象的意思,可以修饰类,方法 被它修饰的类是抽象类,可以有抽象方法,和非抽象方法,可以被继承,但是不能和 final  一起使用,因为,final 是最终的,不可被继承或是修改。
详细的说:
包含了抽象方法的一个类叫作“抽象类”。如果一个类里包含了一个或多个抽象方法,类就必须指定成
  abstract(抽象)。“抽象方法”,属于一种不完整的方法,只含有一个声明,没有方法主体。下面是抽象方法声明时采用的语法:
  abstract void X();
  如果从一个抽象类继承,而且想生成新类型的一个对象,就必须为基础类中的所有抽象方法提供方法定义。
  如果不这样做(完全可以选择不做),则衍生类也会是抽象的,而且编译器会强迫我们用abstract 关键字标
  志那个类的“抽象”本质。
  即使不包括任何abstract 方法,亦可将一个类声明成“抽象类”。如果一个类没必要拥有任何抽象方法,而
  且我们想禁止那个类的所有实例,这种能力就会显得非常有用。  

Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。
final类不能被继承,没有子类,final类中的方法默认是final的。
final方法不能被子类的方法覆盖,但可以被继承。
final成员变量表示常量,只能被赋值一次,赋值后值不再改变。
final不能用于修饰构造方法。
注意:父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马