个人认为interface和abstract class差别不大。
感觉平时abstract class用的比较少,都用interface代替了。
大家有什么看法?abstract class具体用到什么地方,
interface又具体用到什么地方?
感觉平时abstract class用的比较少,都用interface代替了。
大家有什么看法?abstract class具体用到什么地方,
interface又具体用到什么地方?
解决方案 »
- Java中Thread的终止问题,stop(),interrupt()
- 100 分 java 窗口图标 不能改变
- 传递数组参数的问题
- 关于货币型值的计算问题!
- 高分诚心请教:用多个jcombobox的选项组成sql语句的查询,如何传递点击选项后的参数?不点击可以用getselecteditem,点击选项后应该用什么
- 如何监控对象状态?
- java c/s 模式里面,哪里可以找到时间控件?
- 请问下面一段代码的几个问题
- 从书上拷贝下来的,怎么老是“can't find the file”,
- 如何在JAVA程序中运行word、excel程序打开word、excel文件?
- 这个方法怎么理解
- 我的JSP不能调试,不知道是为什么?大家帮忙
java不允许多重继承,所以interface解决了这个问题,可以多重implements
1.接口可以多重继承 ,抽象类不可以
我的解释:
如果你在面试这么说会判定你的思想是错的,java中并没有多重继承的概念,此处这么说
是说他好比是多重继承一样,但是却不是。2.接口定义方法,不给实现;而抽象类可以实现部分方法
我的解释:抽象类中可以有非抽象的方法,但是接口中都是抽象方法3.接口中基本数据类型的数据成员,都默认为static和final,抽象类则不是
这个我就不解释,说的很明白如果事先知道某种东西会成为基础类,
那么第一个选择就是把它变成一个接口。
只有在必须使用方法定义或者成员变量的时候,才应考虑采用抽象类。
但是有一种情况可能用abstract class:
abstract class shape
{
int height;
}
class triagle extends shape
{
...
}
class square extends shape
{
...
}
上面square,triagle 都有成员height
但interface 就不行,因为它的定义的成员默认就是final static
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。