1.按要求编写Java程序:
(1)编写一个接口:InterfaceA,只含有一个方法int method(int n);
(2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方
法时,要求计算1到n的和;
(3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口
方法时,要求计算n的阶乘(n!);
(4)编写测试类E,在测试类E的main方法中使用接口回调的形式来测试实现
(1)编写一个接口:InterfaceA,只含有一个方法int method(int n);
(2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方
法时,要求计算1到n的和;
(3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口
方法时,要求计算n的阶乘(n!);
(4)编写测试类E,在测试类E的main方法中使用接口回调的形式来测试实现
接口的类。
package Day11;
public class HomeWork_01 {//(4)
public static void main(String[] args) {
A s2 = new B();
show(s2);
A s3 = new C();
show(s3);
/*//用继承的方法(1)
* E c =new E();
int cc =c.method(4);
System.out.println(C的阶乘:"+cc);*/
}
//第1种: print(new B(),4);//调用print方法,创建子类对象,要求的值
// print(new C(),4); //A a =new A();
// public static void print(A a,int n){ //1创建方法,接收父类引用\要传的子类,接收要求的值
// System.out.println(a.method(n));//子类的方法接收要求的值
// }
//第2种: B b = new B();//1.创建实体对象,引用对象
// A a = new A();
// test(b);//2.方法 引用 对象
// test(a);
//static void test(C c){//3.父类引用\传进来的那个子类
// int sum = c.method(5);//4.调用子类方法(传到此方法)——接收返回值
// System.out.println(sum);//5.打印返回值
//}
public static void show(A tmp){//第3种
if(tmp instanceof C){
System.out.println("C的阶乘:"+tmp.method(4) );
}else if(tmp instanceof B){
System.out.println("B阶乘和:"+tmp.method(4) );
}
}
}
interface A {//(1)
int method(int n);
}
class B implements A {//(2)//阶乘tmp,阶乘和sum 注意这里是有返回值所以只能写多个求阶乘的方法
public int method(int n){
int i,tmp,sum;
tmp=1;sum=0;
for(i=1;i<=n;i++){// 这里初始值一定要是1,且要<=
sum += (tmp *= i);
}return sum;
}
}
class C implements A{//(3)//用接口的方法
public int method(int n){
int sum =1;
for(int i=1;i<=n;i++){
sum *= i;
}return sum;
}
}
class E extends B{//用继承的方法(1)
}