两个类所继承的接口一样,所重写的方法具体内容也相同,如何通过组合简化代码,请举例。
时间: 2024-03-15 21:47:42 浏览: 69
java子类调用父类的方法中包含子类重写的实例方法
可以定义一个包含这个接口实现和这个方法重写的类,然后让这两个类分别通过组合的方式来使用这个类中的方法。具体的实现可以参考以下示例代码:
```java
public interface MyInterface {
void myMethod();
}
public class MyInterfaceImpl implements MyInterface {
@Override
public void myMethod() {
// 具体实现
}
}
public class MyClass1 {
private MyInterface myInterface;
public MyClass1(MyInterface myInterface) {
this.myInterface = myInterface;
}
public void doSomething() {
// 调用接口方法
myInterface.myMethod();
// 其他具体实现
}
}
public class MyClass2 {
private MyInterface myInterface;
public MyClass2(MyInterface myInterface) {
this.myInterface = myInterface;
}
public void doSomethingElse() {
// 调用接口方法
myInterface.myMethod();
// 其他具体实现
}
}
// 使用示例
MyInterfaceImpl myInterfaceImpl = new MyInterfaceImpl();
MyClass1 myClass1 = new MyClass1(myInterfaceImpl);
MyClass2 myClass2 = new MyClass2(myInterfaceImpl);
myClass1.doSomething();
myClass2.doSomethingElse();
```
在这个示例中,`MyInterfaceImpl` 是具体实现了 `MyInterface` 接口中的 `myMethod` 方法的类。`MyClass1` 和 `MyClass2` 分别通过在构造方法中传入一个 `MyInterfaceImpl` 的实例来使用这个类中的方法。这样就避免了重复实现同样的方法。
阅读全文