//注释掉的是通过类继承接口来实现给接口定义的对象传参
//或者可以通过匿名内部类来不在外边写那个类直接写一个接口的实现类给接口定义的对象传参
//不太推荐使用匿名内部类,因为可读性会变差,但有时也可以用用,会让代码看起来更高级。。
public class AnonymousInnerClassExercise {
public static void main(String[] args) {
MyMath myMath = new MyMath();
// myMath.mySum(new MyComputer(),100,200);
// 匿名内部类,相当于直接在调用的时候去将抽象类或接口中未实现的方法实现出来
myMath.mySum(new Computer() {
public int sum(int a, int b) {
return a + b;
}
}, 100, 200);
}
}
interface Computer{
int sum(int a , int b);
}
//通过一个类将接口继承然后在传参的时候将这个类上转型传递给接口定义的对象
/*class MyComputer implements Computer{
public int sum(int a, int b){
return a+b;
}
}*/
class MyMath{
public void mySum(Computer c, int a, int b){
System.out.println(a + "+" + b + "=" + c.sum(a,b));
}
}