Java 公共接口和抽象接口的区别?

Java 公共接口和抽象接口的区别?,java,Java,有人能告诉我指定公共接口和抽象接口的区别吗 public interface Test{} 及 接口是隐式抽象的。因此不需要抽象接口 来自JLS: 9.1.1.1。抽象接口 每个接口都是隐式抽象的 此修饰符已过时,不应在新程序中使用 接口是隐式抽象的。因此不需要抽象接口 来自JLS: 9.1.1.1。抽象接口 每个接口都是隐式抽象的 此修饰符已过时,不应在新程序中使用 将接口声明为abstract是多余的,因为根据定义它们都是abstract。那么,唯一的区别就是public组件。您的第一个

有人能告诉我指定公共接口和抽象接口的区别吗

public interface Test{} 


接口是隐式抽象的。因此不需要
抽象接口

来自JLS:

9.1.1.1。抽象接口

每个接口都是隐式抽象的

此修饰符已过时,不应在新程序中使用


接口是隐式抽象的。因此不需要
抽象接口

来自JLS:

9.1.1.1。抽象接口

每个接口都是隐式抽象的

此修饰符已过时,不应在新程序中使用


将接口声明为
abstract
是多余的,因为根据定义它们都是
abstract
。那么,唯一的区别就是
public
组件。您的第一个接口(是公共的)可以从任何地方访问,而您的第二个接口(具有默认可见性)是包私有的,这意味着它只能在自己的包中访问。

根据定义,将接口声明为
抽象
,这是多余的。那么,唯一的区别就是
public
组件。您的第一个接口(是公共的)可以从任何地方访问,而您的第二个接口(具有默认可见性)是包私有的,这意味着它只能在自己的包中访问。

public abstract interface
意味着它将在所有包中可用。但是由于默认访问权限,
abstract interface
将仅在当前包中可用。在此处阅读有关访问说明符的更多信息:


包本质上是抽象的,这意味着它们不能被抽象。包中的所有方法都是抽象的。使用纯抽象方法时,要求实现类重写它们。

公共抽象接口
意味着它将在所有包中可用。但是由于默认访问权限,
abstract interface
将仅在当前包中可用。在此处阅读有关访问说明符的更多信息:


包本质上是抽象的,这意味着它们不能被抽象。包中的所有方法都是抽象的。使用纯抽象方法,强制实现类重写它们。

前者是一个可以从任何地方访问的接口。后者(因为抽象是)是一个可以在同一个包中访问的接口,因为它有默认的访问修饰符。

前者是一个可以从任何地方访问的接口。后者(因为是抽象的)是一个可以在同一个包中访问的接口,因为它有默认的访问修饰符。

与往常一样,JLS提供了答案():

每个接口都是隐式抽象的


当然,我假设您的意思是在第二个示例中包含
public
修饰符。如果没有,那么两者之间还有其他区别——但它们与
摘要
关键字无关。

与往常一样,JLS提供了答案():

每个接口都是隐式抽象的



当然,我假设您的意思是在第二个示例中包含
public
修饰符。如果你没有,这两者之间还有其他区别——但它们与
abstract
关键字无关。

Java中没有抽象接口,因为这是它们的默认行为。@Luigimendoza只有抽象接口。@arshajii,因为这是它们的默认行为事实上是它们的唯一行为。没有这样的区别在Java中作为抽象接口的东西,因为那是他们的默认行为。@LuiggiMendoza只有抽象接口。@arshajii,因为那是他们的默认行为,事实上是他们唯一的行为。完全相同??
abstract
one中没有
public
。@RohitJain我指的是
abstract
组件,但我会编辑得更具体一些。完全一样??
abstract
one中没有
public
。@RohitJain我指的是
abstract
组件,但我会编辑得更具体一些。谢谢Hexafrance..明白了,别忘了对正确的答案投赞成票,让你满意。@BuhakeSindi什么?“你这是对谁说的?”六分式,我是在和普拉兰说话。谢谢,明白了!记住,将来,他/她可能会忘记投票。谢谢HexaFraction..明白了,别忘了投票选出正确且令您满意的答案。@BuhakeSindi什么?“你这是对谁说的?”六分式,我是在和普拉兰说话。谢谢,明白了!记住,将来他/她可能会忘记投票表决答案。
abstract interface Test{}