我有一个java接口,它有很少的抽象方法。
public interface Interface {
void test();
void test1();
}
现在我有一个实现Interface的A类。要求是我想将A类扩展到多个客户端类。 A类应该实现test()。现在我希望类A应该保持test1抽象,并且test1的实现应该在类A的客户端中完成。是否有可能在Java中实现这一点。如果是,有人可以通过正确的方式来实现这一要求吗?
答案 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
中指定的行为。