abstract interface和interface中的abstract 方法

本文探讨了Java中接口与抽象方法的定义方式及其本质。解释了为何接口中的方法默认为抽象,并通过示例代码展示了不同定义方式之间的差异及其实质上的相同之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:http://topic.youkuaiyun.com/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都是一样的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值