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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 赵海洋 于 2013-7-6 18:20 编辑

今天复习了一下抽象类, 视频上说, 抽象类不能被private, static, final三个所修饰, 对于抽象类不能被私有, 我比较理解, 因为如果私有了, 子类就覆盖不了了抽象方法.
而对于, 为何不能被static和final所修饰, 我还是比较迷糊, 请大家用自己的话说一说.

评分

参与人数 1黑马币 +3 收起 理由
杨兴庭 + 3

查看全部评分

9 个回复

倒序浏览
如果被static修饰就能直接类名调用方法,但是抽象方法没有方法主体,调用没意义,而抽象方法不能被final修饰就简单了,如果final修饰了,子类继承就无法重写抽象方法,那继承后的类还是抽象,没意义,这是我的理解
回复 使用道具 举报
我觉得呢,private不能修饰不是因为修饰了抽象类,子类就不能覆盖抽象方法,因为这里说的private修饰的是抽象类而不是方法。 private意思是只能在该类所使用,而如果类都私有了,那这个类就只能被自己使用了,那其它人就不能访问到,所以存在也没有意义。而static修饰的是一个类的类变量或者类方法,不可能说把一个类定义成类的类..而final就如楼上所说,如果抽象类被定义成final的了,那说明它是最终类,也就不能被继承了,那这个抽象类就没有意义了,只能在里面定义些常量,那样的话直接用个接口就可以了。  要想让private 和static修饰符能修饰一个类,那这个类只能是成员内部类…

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

回复 使用道具 举报
final :被final修饰的类不能有子类,而被abstract修饰的类一定是一个父类。
static:如果static 可以修饰抽象方法,那么连对象的省了,直接类名调用就可以了。可是抽象方法运行没有意义。
回复 使用道具 举报
static: 抽象类中的方法都是没有方法体的。如果调用(用类名加.方法名)。调用一个没有方法体的方法是没有意义的.
final: 被final修饰的类不能被继承。那没抽象类中的方法完全没用。只能调用里面抽象类中有方法体的方法才有意义。如果抽象类中的方法全是抽象的,要实现一个接口也实现不了。
回复 使用道具 举报
1.final  
final关键字的特点
    final可以修饰类,方法,变量。
    final修饰的类不可以被继承
    final修饰的方法不可以被覆盖
    final修饰的变量是一个常量,只能被赋值一次
    内部类只能访问被final修饰的局部变量
final修饰的类不可以被继承 final修饰的方法不可以被覆盖,所以不可以用来修饰抽象类
2.static
静态:static
用法:是一个修饰符。用于修饰成员(成员变量和成员函数)
修饰后的成员被单独提取出来 不在堆内存中  每个人都可以访问

当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外
还可以直接被类名调用,格式  类名.静态成员
而抽象类被静态修饰应该是可以的 但是由于抽象方法没有方法体 直接调用没有意义,所以没有意义

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
zhouchao 发表于 2013-7-6 09:10
1.final  
final关键字的特点
    final可以修饰类,方法,变量。

谢谢  你解释的最详细了!!
回复 使用道具 举报
22期的斑竹怎么联系啊...也没看到QQ   斑竹看到帮我改下以解决
回复 使用道具 举报
郑先明 发表于 2013-7-6 12:22
22期的斑竹怎么联系啊...也没看到QQ   斑竹看到帮我改下以解决

版主们的qq在置顶的帖子里都能看到,如技术分加分细则里都有版主的qq。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马