黑马程序员技术交流社区

标题: 关键字abstract不能和private、final、static共存吗? [打印本页]

作者: 微--尘    时间: 2016-7-6 23:21
标题: 关键字abstract不能和private、final、static共存吗?
关键字abstract不能和private、final、static共存吗?为什么?
作者: cat73    时间: 2016-7-6 23:58
abstract 的东西是还没实现的,用处是让子类去实现。
而 final 会禁止子类修改,如果加上 final 则子类无法去实现,所以 final 不能与 abstract 共存
private 同理,private 的东西子类看不到,自然无法去实现它

作者: 新人—小明同学    时间: 2016-7-7 13:06
      1:static.被abstract修饰的方法没有方法体,被static修饰,可以用类名点调用,但是类名点调用抽象方法是没有意义的.
public final abstract void print();
        2:final.被abstract修饰的方法强制子类重写,被final修饰的不让子类重写,所以他两是矛盾的.
        3:private.被abstract修饰的是为了让子类看到并强制重写.
        被private修饰是不让子类访问,所以他两是矛盾的.
作者: 南无ice    时间: 2016-7-7 14:30
其实这个不难理解,因为abstract是将共性的内容抽取出来的抽象类。为了给别人继承而用,而另外三个关键一个是私有,一个修饰为常量,一个是类直接调用。就和之前的继承冲突了。
作者: 他的好    时间: 2016-7-7 20:16
abstract 抽象的意思,修饰的方法强制让子类去重写。
final 最终的意思,修饰变量的话会变成常量,修饰类的话该类无法继承,更不能让子类去重写
private 私有的意思,修饰的成员只能在本类中看到,子类无法继承,子类都无法访问
static 静态的,修饰的可以通过类名调用,abstract修饰的方法没有方法体。类调用抽象方法没有意义
作者: Vision-V    时间: 2016-7-7 21:08
①static 这个修饰符修饰后就可以直接使用类名调用了,但是抽象方法连大括号都没有,调用没有什么实际意义.
②private 这个是私有的意思,父类用来修饰不给子类访问的,跟抽象方法矛盾了,这样子类怎么重写你的方法,抽象类的继承在子类里要重写方法啊!
③final 这个词修饰的方法,不给重写,矛盾!
作者: 15620608429    时间: 2016-7-7 22:41
abstract是修饰抽象类和抽象方法及接口的修饰符,private是私有的,子类中需要重写父类方法,父类私有你看不到,矛盾。static和final都差不多是矛盾的,所以不饿能够共存




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