实现接口的Java类和扩展此类的另一个类

时间:2011-07-02 19:03:41

标签: java

我有一个java接口,它有很少的抽象方法。

public interface Interface {
    void test();
    void test1();
}

现在我有一个实现Interface的A类。要求是我想将A类扩展到多个客户端类。 A类应该实现test()。现在我希望类A应该保持test1抽象,并且test1的实现应该在类A的客户端中完成。是否有可能在Java中实现这一点。如果是,有人可以通过正确的方式来实现这一要求吗?

1 个答案:

答案 0 :(得分:8)

首先,默认情况下,每个方法都是公共和抽象的接口。你别无选择。

以下是我的写作方式,名称更好:

public interface A {
    void test1();
    void test2();
}

public abstract class B implements A {
{
    public void test1() { // do something here; concrete implementation }
    // Note: Nothing for test2.  
    // Compiler doesn't complain because it's an abstract class, and this is an abstract method.
}

public class C extends B {
    // Note: nothing for test1 - get it from abstract superclass
    // Note: compiler will complain if nothing is done to implement test2(), because C isn't abstract
    public void test2() { // do something here; concrete implementation }
}

C如果选择可以覆盖test1(),但如果没有做任何事情,它将继承类B中指定的行为。