51,407
社区成员
发帖
与我相关
我的任务
分享
//定义草稿数学的有关double运算的接口
interface caogaoMathDouble {
public static double add(double a, double b) {
return a + b;
}
public static double add(double a, int b) {
return a + b;
}
public static double add(int a, double b) {
return a + b;
}
public static double remove(double a, double b) {
return a - b;
}
public static double remove(int a, double b) {
return a - b;
}
public static double remove(double a, int b) {
return a - b;
}
public static double abs(double a,double b) {
return Math.abs((a+b)/2);
}
}
// 定义草稿数学的有关乘法运算的接口
interface caogaoMathMult {
public static int mult(int a, int b) {
return a * b;
}
public static double mult(double a, int b) {
return a * b;
}
public static double mult(int a, double b) {
return a * b;
}
public static double mult(double a, double b) {
return a * b;
}
}
//定义草稿数学的有关除法运算的接口
interface caogaoMathDiv {
public static int div(int a, int b) {
return a / b;
}
public static double div(double a, int b) {
return a / b;
}
public static double div(int a, double b) {
return a / b;
}
public static double div(double a, double b) {
return a / b;
}
}
// 定义草稿数学总和接口,继承草稿数学的有关乘法运算、除法运算、以及double加减法运算的接口
interface caogaoMathZonghe extends caogaoMathDiv, caogaoMathDouble, caogaoMathMult {
}
// 定义草稿数学的抽象类,只包含int加减法运算
public abstract class caogaoMath{
private int a;
private int b;
public caogaoMath(int a, int b) {
// TODO 自动生成的构造函数存根
this.a = a;
this.b = b;
}
public int add() {
return a + b;
}
public int remove() {
return a - b;
}
public int abs() {
return Math.abs((a+b)/2);
}
}
//定义草稿类,继承抽象类草稿数学并实现草稿数学的总和接口
class caogao extends caogaoMath implements caogaoMathDiv {
public caogao(int a, int b) {
super(a, b);
// TODO 自动生成的构造函数存根
}
public static void main(String[] args) {
caogao caogao=new caogao(2, 5);
System.out.println(caogao.abs());
System.out.println(caogao.remove());
System.out.println(caogao.add());
//在草稿类中正确继承了草稿数学中的类,但是没有正确实现草稿数学总和接口中的各个方法
}
}
/*
//定义草稿类,继承抽象类草稿数学并实现草稿数学的有关除法运算的接口
class caogao extends caogaoMath implements caogaoMathDiv {
public caogao(int a, int b) {
super(a, b);
// TODO 自动生成的构造函数存根
}
public static void main(String[] args) {
caogao caogao=new caogao(2, 5);
System.out.println(caogao.abs());
System.out.println(caogao.remove());
System.out.println(caogao.add());
//在草稿类中正确继承了草稿数学中的类,但是没有正确实现草稿数学的有关除法运算接口中的方法
//也就是说并不是在第71行时接口继承接口时错误的问题
}
}
*/
//定义草稿数学的有关double乘除法运算的接口
interface caogaoMathDouble {
public double div();
public double mult();
}
// 定义草稿数学的抽象类,只包含double加减法与abs运算
abstract class caogaoMath {
private double a;
private double b;
public caogaoMath(double a, double b) {
// TODO 自动生成的构造函数存根
this.a = a;
this.b = b;
}
public double add() {
return a + b;
}
public double remove() {
return a - b;
}
public double abs() {
return Math.abs((a + b) / 2);
}
}
// 定义草稿类,继承抽象类草稿数学并实现草稿数学的总和接口
class Caogao extends caogaoMath implements caogaoMathDouble {
double a;
double b;
public Caogao(double a, double b) {
// TODO 自动生成的构造函数存根
super(a,b);
this.a=a;
this.b=b;
}
public static void main(String[] args) {
Caogao caogao = new Caogao(2, 5);
System.out.println(caogao.abs());
System.out.println(caogao.remove());
System.out.println(caogao.add());
System.out.println(caogao.div());
System.out.println(caogao.mult());
}
@Override
public double div() {
// TODO 自动生成的方法存根
return a/b;
}
@Override
public double mult() {
// TODO 自动生成的方法存根
return a*b;
}
}
我适当的修改了代码,可行了。只不过在每次接口继承时都需要在接口中定义方法,然后又在继承的类中去实现方法?//定义草稿数学的有关double乘除法运算的接口
interface caogaoMathDouble {
public double div();
public double mult();
}
// 定义草稿数学的抽象类,只包含double加减法与abs运算
abstract class caogaoMath {
private double a;
private double b;
public caogaoMath(double a, double b) {
// TODO 自动生成的构造函数存根
this.a = a;
this.b = b;
}
public double add() {
return a + b;
}
public double remove() {
return a - b;
}
public double abs() {
return Math.abs((a + b) / 2);
}
}
// 定义草稿类,继承抽象类草稿数学并实现草稿数学的总和接口
class Caogao extends caogaoMath implements caogaoMathDouble {
double a;
double b;
public Caogao(double a, double b) {
// TODO 自动生成的构造函数存根
super(a,b);
this.a=a;
this.b=b;
}
public static void main(String[] args) {
Caogao caogao = new Caogao(2, 5);
System.out.println(caogao.abs());
System.out.println(caogao.remove());
System.out.println(caogao.add());
System.out.println(caogao.div());
System.out.println(caogao.mult());
}
@Override
public double div() {
// TODO 自动生成的方法存根
return a/b;
}
@Override
public double mult() {
// TODO 自动生成的方法存根
return a*b;
}
}
我适当的修改了代码,可行了。只不过在每次接口继承时都需要在接口中定义方法,然后又在继承的类中去实现方法?[/quote]
是的,接口的确有这个麻烦的地方。