黑马程序员技术交流社区

标题: abstract class和interface [打印本页]

作者: 倪鹏博    时间: 2012-3-5 00:24
标题: abstract class和interface
本帖最后由 倪鹏博 于 2012-3-5 00:28 编辑

abstract class和interface这两个有什么区别?
最好举例说明下!谢谢
作者: 黑马肖凯骏    时间: 2012-3-5 00:29
abstract class 抽象类,可以里面有抽象的方法 也有非抽象的方法

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

就是这样的区别了!
作者: djx900    时间: 2012-3-5 00:48
接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,

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

还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用
作者: 刘泰    时间: 2012-3-5 12:43
例子:
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();
}
即在接口中的方法不能有方法体,可以说是纯抽象的方法,{}也不能有的






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