假设我有一个有3种方法的接口。这个接口由许多类实现,但say 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{
}
答案 0 :(得分:3)
使用java 8,您可以在界面内定义方法的默认实现。
public interface A {
default void method1() { System.out.println("Default method1 implementation"); }
void method2();
void method3();
}
答案 1 :(得分:0)
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
答案 2 :(得分:0)
Java不支持多重继承。 您可以使Abs类扩展SomeClass
class Abs extends SomeClass {
}
class Test extends Abs implements Inf {
}