同样是个很菜鸟的问题,我要用抽象类的方法实现“java中用抽象类做两个数的相加减乘除操作”这道题!小弟无从下手!呵呵呵望各位大虾帮忙!急!等着交作业呢!哈哈
实现结果就像这样的!请录入2个整数:
30
15
相加结果为:45
相减结果为:15
相乘结果为:450
相除结果为:2
请按任意键继续
实现结果就像这样的!请录入2个整数:
30
15
相加结果为:45
相减结果为:15
相乘结果为:450
相除结果为:2
请按任意键继续
就只写签名
然后在ExtendsTest完成这个方法不就可以了
public abstract class father {
public abstract void add(int firstNumber,int secondNumber);
}
public class son extends father {
public void add(int x,int y)
{
int i= x + y;
System.out.println(i);
}
既然继承了,就不用再写
public int addNumber(int x,int y)
{
int i=add(x,y);
return i;
}直接用
可以没有一个抽象方法。
double num1 = 30;
double num2 = 15;
System.out.println("加: " + Operation.getInstance("+").eval(num1, num2));
System.out.println("减: " + Operation.getInstance("-").eval(num1, num2));
System.out.println("乘: " + Operation.getInstance("*").eval(num1, num2));
System.out.println("除: " + Operation.getInstance("/").eval(num1, num2));
}
}import java.util.HashMap;
import java.util.Map;public abstract class Operation { private static Map<String, Operation> register = new HashMap<String, Operation>(); private Operation(String operator) {
register.put(operator, this);
} public final static Operation ADD = new Operation("+") {
protected double eval(double left, double right) {
return left + right;
}
}; public final static Operation SUBTRACTION = new Operation("-") {
protected double eval(double left, double right) {
return left - right;
}
}; public final static Operation MULIPLICATION = new Operation("*") {
protected double eval(double left, double right) {
return left * right;
}
}; public final static Operation DIVISION = new Operation("/") {
protected double eval(double left, double right) {
return left / right;
}
}; public static Operation getInstance(String operator) {
Operation op = register.get(operator);
if (op == null) {
throw new IllegalArgumentException("不能进行 " + operator + " 运算");
}
return op;
} protected abstract double eval(double left, double right);
}