现在的位置: 首页 > 综合 > 正文

abstract interface和interface中的abstract 方法

2013年07月03日 ⁄ 综合 ⁄ 共 671字 ⁄ 字号 评论关闭

参考:http://topic.csdn.net/u/20080328/12/f7c83218-c4fe-4883-a31d-20d1f386ab1e.html

在前面的一片博客设计模式之Iterator 的实例中,定义了一个Iterator接口,具体代码如下所示:

public interface Iterator {    
    public abstract boolean hasNext();    
    public abstract Object next();    
}   

仔细观察会发现这个接口跟我们往常见到的接口有一些不同。那就是接口中定义的方法是abstract的。平常我们定义一个接口一般都没有abstract,大多按如下方式定义:

public interface Iterator {
	public boolean hasNext();
	public Object next();
}

后来发现还可以在interface前面加上abstract而对整个程序不造成任何影响,程序如下所示:

public abstract interface Iterator {    
    public abstract boolean hasNext();    
    public abstract Object next();    
}   

那么这里抽象接口,接口中的抽象方法,又到底是什么东西了。其实无论接口和接口中的方法如何声明,都是抽象的。即使在声明接口时,并没有用abstract修饰,但是在编译的时候编译器会自动加上abstract。所以根本没有实质意义上的区分,只不过在写法上有所不同而已。接口中方法都是抽象的,这个无论用不用修饰符abstract都是一样的。

抱歉!评论已关闭.