接口作为参数的方法的使用
方法内直接用接口形参调用方法
public class InterfaceText {
public void say(InterfaceA f) {
System.out.println(f.method());
}
public static void main(String[] args) {
InterfaceA f = new ClassA(2); //对象的多态,向上转型
InterfaceText t = new InterfaceText();
t.say(f);
InterfaceA x = new ClassB(2);
t.say(x);
}
}
interface InterfaceA { //自定义InterfaceA接口
abstract int method();
}
class ClassA implements InterfaceA { //自定义ClassA类实现Interface接口,并重写method方法
private int n;
ClassA(int n) {
this.n = n;
}
public int method() { //重写方法
int sum = 0;
for (int i = 1; i < n + 1; i++) {
sum += i;
}
return sum;
}
}
class ClassB implements InterfaceA { // 自定义ClassB类实现InterfaceA接口并重写method方法
private int n;
ClassB(int n) {
this.n = n;
}
public int method() { //重写方法
int product = 1;
for (int i = 1; i < n + 1; i++) {
product *= i;
}
return product;
}
}