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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

关键字abstract不能和private、final、static共存吗?为什么?

6 个回复

倒序浏览
abstract 的东西是还没实现的,用处是让子类去实现。
而 final 会禁止子类修改,如果加上 final 则子类无法去实现,所以 final 不能与 abstract 共存
private 同理,private 的东西子类看不到,自然无法去实现它
回复 使用道具 举报 1 0
      1:static.被abstract修饰的方法没有方法体,被static修饰,可以用类名点调用,但是类名点调用抽象方法是没有意义的.
public final abstract void print();
        2:final.被abstract修饰的方法强制子类重写,被final修饰的不让子类重写,所以他两是矛盾的.
        3:private.被abstract修饰的是为了让子类看到并强制重写.
        被private修饰是不让子类访问,所以他两是矛盾的.
回复 使用道具 举报
其实这个不难理解,因为abstract是将共性的内容抽取出来的抽象类。为了给别人继承而用,而另外三个关键一个是私有,一个修饰为常量,一个是类直接调用。就和之前的继承冲突了。
回复 使用道具 举报
abstract 抽象的意思,修饰的方法强制让子类去重写。
final 最终的意思,修饰变量的话会变成常量,修饰类的话该类无法继承,更不能让子类去重写
private 私有的意思,修饰的成员只能在本类中看到,子类无法继承,子类都无法访问
static 静态的,修饰的可以通过类名调用,abstract修饰的方法没有方法体。类调用抽象方法没有意义
回复 使用道具 举报
①static 这个修饰符修饰后就可以直接使用类名调用了,但是抽象方法连大括号都没有,调用没有什么实际意义.
②private 这个是私有的意思,父类用来修饰不给子类访问的,跟抽象方法矛盾了,这样子类怎么重写你的方法,抽象类的继承在子类里要重写方法啊!
③final 这个词修饰的方法,不给重写,矛盾!
回复 使用道具 举报
abstract是修饰抽象类和抽象方法及接口的修饰符,private是私有的,子类中需要重写父类方法,父类私有你看不到,矛盾。static和final都差不多是矛盾的,所以不饿能够共存
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马