编写A、B两个类和一个接口C(名称可自定义),实现A类回调B中重写的接口函数。请写出程序的代码,用包括Lambd表达式在内的多种方式实现
时间: 2024-06-10 20:09:08 浏览: 130
很高兴回答您的问题!
以下是实现A类回调B中重写的接口函数的程序代码:
接口C定义如下:
```
public interface C {
void callback();
}
```
A类实现接口C并调用B类的接口函数:
```
public class A implements C {
private B b;
public A(B b) {
this.b = b;
}
@Override
public void callback() {
System.out.println("A类中实现了接口函数,并回调了B类中的接口函数");
b.interfaceMethod();
}
}
```
B类重写接口C中的接口函数:
```
public class B implements C {
@Override
public void callback() {
System.out.println("B类中重写了接口函数");
}
public void interfaceMethod() {
System.out.println("B类中的接口函数被调用");
}
}
```
使用Lambda表达式实现A类回调B类的接口函数:
```
public class Main {
public static void main(String[] args) {
B b = new B();
C c1 = () -> {
System.out.println("Lambda表达式实现A类回调B类的接口函数");
b.interfaceMethod();
};
A a1 = new A(b);
a1.callback();
c1.callback();
}
}
```
使用匿名内部类实现A类回调B类的接口函数:
```
public class Main {
public static void main(String[] args) {
B b = new B();
C c2 = new C() {
@Override
public void callback() {
System.out.println("匿名内部类实现A类回调B类的接口函数");
b.interfaceMethod();
}
};
A a2 = new A(b);
a2.callback();
c2.callback();
}
}
```
以上就是多种方式实现A类回调B类的接口函数的代码,希望对您有所帮助!
阅读全文