[英]Partial interface implementation when you cannot extend a abstract class in java
假设我有一个包含3种方法的接口。 这个接口将由许多类实现,但是method1的实现在所有类中都是相同的。
我可以创建一个抽象类,并为method1提供具体的实现,然后让我的类扩展该类。
我的问题是,当我已经在扩展一个类时,如何也扩展这个抽象类。 Java不支持它。 在这种情况下应该如何设计?
interface Inf{
void method1();
void method2();
void method3();
}
public abstract class Abs implements Inf{
void method1(){
//concrete implementation
}
}
class Test extends SomeClass implements Inf{
//here I need method1 implementation and other methods Ill implement
}
class SomeClass{
}
使用Java 8,您可以在接口内部定义方法的默认实现。
public interface A {
default void method1() { System.out.println("Default method1 implementation"); }
void method2();
void method3();
}
Java不支持Multiple Inheritance
。 即,一个类不能具有多个基类。 您可以做的是使SomeClass
扩展Abs
类
class SomeClass extends Abs{
}
class Test extends SomeClass implements Inf{
//here you can get method1 implementation since Someclass extends Abs
}
注意:如@anonymous所述,如果您使用Java 8,则可以使用default methods
的interface
default methods
Java不支持多重继承。 您可以使您的Abs类扩展SomeClass
class Abs extends SomeClass {
}
class Test extends Abs implements Inf {
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.