java中用抽象类做两个数的相加减乘除操作

Gangzi 2008-12-28 08:55:37
同样是个很菜鸟的问题,我要用抽象类的方法实现“java中用抽象类做两个数的相加减乘除操作”这道题!小弟无从下手!呵呵呵望各位大虾帮忙!急!等着交作业呢!哈哈
实现结果就像这样的!

请录入2个整数:
30
15
相加结果为:45
相减结果为:15
相乘结果为:450
相除结果为:2
请按任意键继续。。。

...全文
554 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenshu999 2008-12-28
  • 打赏
  • 举报
回复
3楼的疑问。。。抽象类中可以包含抽象方法和非抽象的方法,,,,,
believefym 2008-12-28
  • 打赏
  • 举报
回复
不过你们这倒作业题出得也真够怪的,题意不知道想考什么
believefym 2008-12-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jerry313 的回复:]
2F意思我看懂了,不过抽象类中方法不应该声明为抽象的么?
[/Quote]

没有这种限制
抽象类可以没有抽象方法,只不过这个类没有被实例化的意义
jerry313 2008-12-28
  • 打赏
  • 举报
回复
2F意思我看懂了,不过抽象类中方法不应该声明为抽象的么?
luoxiongbo 2008-12-28
  • 打赏
  • 举报
回复
掌柜很说话很幽默哦!“点到为止”
Gangzi 2008-12-28
  • 打赏
  • 举报
回复
对了一楼的兄弟也辛苦了加了5分呵呵别见怪啊!
Gangzi 2008-12-28
  • 打赏
  • 举报
回复
13楼的兄弟很辛苦呵呵,谢谢大家啊!今天刚刚学的抽象类,有点懵懂,13楼兄弟加分拉
  • 打赏
  • 举报
回复 1
public class Test {

public static void main(String[] args) {
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);
}
likgui 2008-12-28
  • 打赏
  • 举报
回复
在类中直接写四个加减乘除方法
zyr860122 2008-12-28
  • 打赏
  • 举报
回复
只有接口中的方法才是保证抽象的,抽象方法中没有必须是抽象的限制
ZiSheng 2008-12-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jerry313 的回复:]
2F意思我看懂了,不过抽象类中方法不应该声明为抽象的么?
[/Quote]
没有限制,只是你的抽象类必须的加上关键字 abstract,并且不能被实例化
可以没有一个抽象方法。
ZiSheng 2008-12-28
  • 打赏
  • 举报
回复

既然继承了,就不用再写
public int addNumber(int x,int y)
{

int i=add(x,y);
return i;
}

直接用
israelsq 2008-12-28
  • 打赏
  • 举报
回复
5楼的问题。我也做过类似的题,老师是想用抽象类的抽象方法,在子类中重写这个方法的方法体。所以掌柜的代码虽然写的对,但是不是老师想要的结果。
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);
}
zhuwen9 2008-12-28
  • 打赏
  • 举报
回复
如果你一定要抽象类中定义抽象的方法
就只写签名
然后在ExtendsTest完成这个方法不就可以了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧