没有实现所有的接口方法。 可能吗?
有什么办法不实现一个inheritance类的接口的所有方法?
解决这个问题的唯一方法就是将你的类声明为abstract
类,并把它留给一个子类来实现缺less的方法。 但最终,链中的某个人必须执行它以符合接口合同。 如果你真的不需要一个特定的方法,你可以实现它,然后return
或抛出一些NotImplementedException
,以适合您的情况为准。
接口的要点是保证一个对象的外在行为与接口指定的一样
如果你没有实现你的接口的所有方法,那么你会破坏接口的全部目的。
我问自己同样的问题,然后了解了适配器。 它解决了我的问题,也许它可以解决你的问题。 这解释得非常好: https : //blogs.oracle.com/CoreJavaTechTips/entry/listeners_vs_adapters
将该类定义为一个abstract
类。 但是,如果要创build实例(通过使用子类或匿名类),则必须实现这些未实现的方法。
如果你想要一个可实例化的类,这是不可能的。 尽pipe如此,你也可以尝试定义一个abstract
类。
这是可能的,而且很容易。 我编写了一个例子 。
你所要做的就是inheritance一个实现该方法的类。 如果你不介意一个不可实例化的类,那么你也可以定义一个abstract
类。
我们可以覆盖abstract
父类和子类中的所有接口方法,只覆盖那些特定子类所需的方法。
接口
public interface MyInterface{ void method1(); void method2(); void method3(); }
摘要父类
public abstract class Parent implements MyInterface{ @Override public void method1(){ } @Override public void method2(){ } @Override public void method3(){ } }
在你的Child类中
public class Child1 extends Parent{ @Override public void method1(){ } } public class Child2 extends Parent{ @Override public void method2(){ } }
- 我应该将初始的javastring值从null设置为“”?
- 应该使用AssertNull或AssertNotNull
- 为什么是ZoneOffset.UTC!= ZoneId.of(“UTC”)?
- 不区分大小写等于使用Hibernate标准
- 将属性“源”设置为“org.eclipse.jst.jee.server:JSFTut”没有find匹配的属性
- Servlet 3.0:@WebServletContextListener在哪里?
- 如何防止java.lang.String.split()创build一个前导空string?
- 在Java中,你如何确定一个线程是否正在运行?
- 以最佳性能将图像写入servlet响应