我们大可将interface视为abstract class的延伸。
首先,interface默认具有abstract属性,所以你不能new一个interface。
其次,interface中的方法默认为public。由[#0x000E] 可知,如果一个imp class实现了一个interface(相当于一个ext class继承了一个base class),那么imp class中对interface中声明方法的实现(相当于是覆写方法)也必须是public。
再次,interface中的field默认为public + static + final,但不能为blank final,即必须初始化。
还有,和abstract class一样,interface支持向上转型,即原来对一般base class的向上转型用法对interface同样适用。
p.s. 如果abstract class或是interface声明为public,则必须与.java文件同名,这一点与一般的public class无异。
2011-10-31 补充:
interface中的方法你可以看成是abstract,但是不能声明为abstract
2012-04-10 补充:
interface中的方法不能是static
本文探讨了Java中接口(interface)与抽象类(abstract class)的主要区别,包括默认属性、方法实现要求、字段特性及向上转型等内容,并附带了一些额外说明。
1786

被折叠的 条评论
为什么被折叠?



