黑马程序员技术交流社区

标题: 抽象类疑问??? [打印本页]

作者: HM汪磊    时间: 2013-3-20 21:58
标题: 抽象类疑问???
本帖最后由 HM汪磊 于 2013-3-21 12:23 编辑

抽象关键字不可以和private,static,final关键字共存,请问为什么???分别写出

作者: 杨博    时间: 2013-3-20 22:04
static与abstract不可以  因为static修饰的方法可以通过类名直接调用。
final与abstract不可以  这两个是完全相反的操作。
private与abstract不可以  因为private私有化了,就不能被继承了。

作者: 张权    时间: 2013-3-20 22:06
private 修饰的方法不能被重写, 其实是可以的, 但是即使重写也不具备多态, 所以通常也可以说成不能重写,这个具体怎么说我也不知道, 因为有些人说可以重写, 有些人说不可以重写, 这个无所谓, 这个只是站在不同的角度去考虑分析出来的, 主要明白就好 了...关键是要知道即使重写也不具备多态, 既然不具备多态, 那么就变得毫无意义, 所以就不能和abstract关键字一起,   static同理  ,  final修饰的方法不能被重写,这个不能重写是真的不能重写, 重写就报错,  既然不能重写,那么肯定就不能多态, 那么就定义的抽象方法就毫无意义, 同理, 如果定义一个类时, 如果既定义成抽象的, 有定义成final的, 那么这个类根本就没法继承了, 不能继承, 那也就没意义了.
作者: lxww    时间: 2013-3-20 22:08
关键字static与abstract不能共存
原因:因为static修饰的方法可以通过类名直接调用,而abstract修饰的方法不行。

关键字final与abstract不能共存  
原因:因为abstract就是要被继承的,而被final修饰的类不可能被继承,所以不能共存。

关键字private与abstract不可以  
原因:因为abstract就是要被继承的,而被private修饰的类被私有化,就不能被继承。
作者: 刘辉    时间: 2013-3-20 22:13
2. **private:
                        私有内容子类继承不到,所以,不能重写。
                        但是,abstract修饰的方法,要求被重写。两者冲突。
           **final
                        final修饰的方法不能被重写。
                        而abstract修饰的方法,要求被重写。两者冲突。                        
                **static
                        假如一个抽象方法能通过static修饰,那么这个方法,就可以直接通过类名调用。
                        而抽象方法是没有方法体的,这样的调用无意义。所以,不能用static修饰。
作者: 孙宁    时间: 2013-3-20 22:15
被final修饰的类不能被继承,被final修饰的成员方法不能被修改,而抽象类是作为父类的,加了final之后不能被子类继承复写,也就失去了意义。
抽象类中的抽象方法被私有了,子类也不能复写修改
被static修饰的方法,可以直接类名调用,可是抽象方法运行没意义.
作者: 黑马17期-闫东东    时间: 2013-3-20 22:31
本帖最后由 黑马17期-闫东东 于 2013-3-20 22:32 编辑

static与abstract不可以  static修饰的方法可以通过类名调用。
final与abstract不可以  这两个是完全相反的操作。
   private与abstract不可以  因为private私有化了,就不能被继承





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