黑马程序员技术交流社区

标题: java基础 概念、小问题 [打印本页]

作者: Emperors    时间: 2014-4-12 19:27
标题: java基础 概念、小问题
本帖最后由 Emperors 于 2014-4-14 18:04 编辑

抽象类关键字abstract  不可以和哪些关键字共存?
作者: Kelvinhu    时间: 2014-4-12 19:40
final?
static?
private?还有吗。。

作者: @文瑞    时间: 2014-4-12 19:42
private、final
private和final修饰的方法都不能被重写,而abstract修饰的方法是要求被重写的,所以之间有冲突 。
作者: 2528870651    时间: 2014-4-12 19:43
认真看视频,都讲过了

final:被final修饰的类不能有子类。而被abstract修饰的类一定是一个父类。
private: 抽象类中的私有的抽象方法,不被子类所知,就无法被复写。
                而抽象方法出现的就是需要被复写。
static:如果static可以修饰抽象方法,那么连对象都省了,直接类名调用就可以了。
                可是抽象方法运行没意义。

作者: UT丶    时间: 2014-4-12 19:49
. **private:
                        私有内容子类继承不到,所以,不能重写。
                        但是,abstract修饰的方法,要求被重写。两者冲突。
           **final
                        final修饰的方法不能被重写。
                        而abstract修饰的方法,要求被重写。两者冲突。                        
                **static
                        假如一个抽象方法能通过static修饰,那么这个方法,就可以直接通过类名调用。
                        而抽象方法是没有方法体的,这样的调用无意义。所以,不能用static修饰。
作者: 探花    时间: 2014-4-12 21:05

不能和 private  ,,final ,,static 一块重写
因为,abstract是 抽象的 继承是需要重写的
而,private 是私有的,类继承是继承不到的,所以不能被重写

final,是修饰方法和变量的,根本不能被重写,才修饰的。

static  是静态修饰,是可以直接被调用的,抽象方法调用也没有任何意义,‘
所有综上 abstract 不能和 这三个关键词一起重写

作者: @文瑞    时间: 2014-4-13 11:19
@文瑞 发表于 2014-4-12 19:42
private、final
private和final修饰的方法都不能被重写,而abstract修饰的方法是要求被重写的,所以之间有 ...

对呢,静态也不行
作者: wangkerui    时间: 2014-4-13 12:57
abstract 关键字,和哪些关键字不能共存?
                        
        final:被final修饰的类不能有子类。而被abstract修饰的类一定是一个父类。
                   当 abstract 修饰类时,表明这个类只能被继承,当 abstract 修饰方法时,表明这个方法必须由子类提供实现(即重写)。而 final 修饰的类不能被继承,final  修饰的方法不能被重写,因此 final 和 abstract 永远不能同时使用。
               
                  
            
        private: 抽象类中的私有的抽象方法,不被子类所知,就无法被复写。而抽象方法的出现就是需要被复写。
                    abstract 关键字修饰的方法必须被其子类重写才有意义,否则这个方法将永远不会有方法体,因此 abstract 方法不能定义为 private 访问权限,即 private 和  abstract 不能同时使用。
               
           
            
               
        static:如果static可以修饰抽象方法,那么连对象都省了,直接类名调用就可以了。可是抽象方法运行没意义。
                    使用 static 来修饰一个方法时,表明这个方法属于当前类,即该方法可以通过类名来调用,如果该方法被定义成抽象方法,则将导致通过该类来调用该方法是出现错误。  因此 static 和 abstract 不能同时修饰某个方法。
              
                  
                  

毕向东Java视屏第七章第八九两课讲的很清楚啊!
作者: luis    时间: 2014-4-13 15:29
abstract 修饰在需要重写,所以与那些被修饰后不能重写的关键字就成死敌,修饰后不能重写的关键字有:private,final,和static。也就是说abstract的死对头有三个,具体原因楼上已经说得很透彻了哦




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