要部分委托实现一个接口,可以使用委托和接口实现的组合。
下面是一个示例代码:
// 定义接口
interface MyInterface {
void method1();
void method2();
void method3();
}
// 实现接口的基本类
class BaseClass implements MyInterface {
@Override
public void method1() {
System.out.println("BaseClass method1");
}
@Override
public void method2() {
System.out.println("BaseClass method2");
}
@Override
public void method3() {
System.out.println("BaseClass method3");
}
}
// 使用委托部分实现接口的类
class PartialDelegateClass implements MyInterface {
private MyInterface delegate;
public PartialDelegateClass(MyInterface delegate) {
this.delegate = delegate;
}
@Override
public void method1() {
delegate.method1();
}
@Override
public void method2() {
System.out.println("PartialDelegateClass method2");
}
@Override
public void method3() {
delegate.method3();
}
}
// 测试
public class Main {
public static void main(String[] args) {
MyInterface baseObject = new BaseClass();
baseObject.method1();
baseObject.method2();
baseObject.method3();
System.out.println();
MyInterface partialDelegateObject = new PartialDelegateClass(baseObject);
partialDelegateObject.method1();
partialDelegateObject.method2();
partialDelegateObject.method3();
}
}
在上面的示例中,通过PartialDelegateClass
类部分委托实现了MyInterface
接口。它将method1()
和method3()
委托给了传入的delegate
对象,而method2()
则在PartialDelegateClass
中具体实现。
输出结果为:
BaseClass method1
BaseClass method2
BaseClass method3
BaseClass method1
PartialDelegateClass method2
BaseClass method3
可以看到,部分委托的类在实现接口时只需要实现部分方法,其他方法则通过委托给其他对象来完成。
下一篇:部分未显示背景颜色