个人认为interface和abstract class差别不大。
感觉平时abstract class用的比较少,都用interface代替了。
大家有什么看法?abstract class具体用到什么地方,
interface又具体用到什么地方?
感觉平时abstract class用的比较少,都用interface代替了。
大家有什么看法?abstract class具体用到什么地方,
interface又具体用到什么地方?
解决方案 »
- 初次接触java多线程,谁能说说对象的等待池、锁池是什么?
- 小弟刚写了个参数特别多 ,方法特别长的方法怎么优化?
- 求教一个简单的JDBC问题。调用不了getResultSet方法。
- 初学者,绘制简单图形问题
- java 打包问题
- 求一个JAVA任务程序
- Applet与Socket的应用
- 页面有个播放器,播放歌曲,然后根据播放的歌曲,生成一个选择题,让选择现在播放的歌曲的名字,怎么来实现?
- java里边有没有办法将ascii构造成为一个char阿??
- 我jbuilder6里的tools->create client jar菜单不可用,这是什么原因
- 这个方法怎么理解
- 我的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 运算符可以用来决定某对象的类是否实现了接口。