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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 倪鹏博 中级黑马   /  2012-3-5 00:24  /  2518 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 倪鹏博 于 2012-3-5 00:28 编辑

abstract class和interface这两个有什么区别?
最好举例说明下!谢谢

3 个回复

倒序浏览
abstract class 抽象类,可以里面有抽象的方法 也有非抽象的方法

interface 接口类,可以看成是只有抽象方法的抽象类

就是这样的区别了!
回复 使用道具 举报
接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,

另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。

还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用
回复 使用道具 举报
例子:
abstract class B {       
           void number(){};           
           void first(){
                   System.out.println("abstact中可以定义有方法体的方法");
           }
}


   interface B {       
           void number();           
           void first(){  //这样就会出错
                   System.out.println("abstact中可以定义有方法体的方法");
           }
}
   interface B {       
           void number();           
           void first();
}
即在接口中的方法不能有方法体,可以说是纯抽象的方法,{}也不能有的

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马