java - 抽象类中的接口(interface)

标签 java interface abstract-class inner-classes jls

是否可以在抽象类中声明接口(interface)?我尝试了这个,我成功地做到了,没有任何编译错误?在实际使用中这有什么意义吗?

这是我编写的代码。

public abstract class X 
{
   public interface abc extends I1 
   {
        public void sum(int i,int j);
   }
}


  public class Impl extends X 
  {
    class InnerImpl implements abc
   {
        @Override
        public int sum(int i, int j)
        {
          return i+j;
        }
   }
 }



public interface I1 
{
}

最佳答案

您可以在任何类中声明接口(interface),而不仅仅是抽象类。该接口(interface)是隐式静态的,因此您的封闭类仅提供命名空间范围,与接口(interface)无关。

它的实用性确实存在,并且我已经在很多场合使用过它。通常,该接口(interface)耦合到同一类的方法,因此客户端可以将该接口(interface)的实现传递给该方法。

随着 Java 8 和函数式接口(interface)类型的出现,本地接口(interface)的数量只会增加。

关于java - 抽象类中的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23008433/

相关文章:

C++ 11 GCC 4快速优化不在堆栈中存储抽象类的实现类

java - 防止客户端重载服务器?

inheritance - 我真的不明白这个co/contravariance的事情...我不能同时拥有通用的get和set方法吗?

c# - Newtonsoft TypeNameHandling.all 具有基本命名空间检查安全吗?

java - 异常后自动重试的功能

php - 扩展抽象单例类

java - Solr 导入不执行任何操作

java - Android Studio 网格布局无法正常工作

java - 尝试读取文件后 rrString 为空

Java8 : Why is it forbidden to define a default method for a method from java. lang.Object