同样是个很菜鸟的问题,我要用抽象类的方法实现“java中用抽象类做两个数的相加减乘除操作”这道题!小弟无从下手!呵呵呵望各位大虾帮忙!急!等着交作业呢!哈哈
实现结果就像这样的!请录入2个整数:
30
15
相加结果为:45
相减结果为:15
相乘结果为:450
相除结果为:2
请按任意键继续

解决方案 »

  1.   

    如果你一定要抽象类中定义抽象的方法
       就只写签名
      然后在ExtendsTest完成这个方法不就可以了
      

  2.   

    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);
        }
      

  3.   


    既然继承了,就不用再写
        public int addNumber(int x,int y)
        {
            
            int i=add(x,y);
            return i;
        }直接用
      

  4.   

    没有限制,只是你的抽象类必须的加上关键字 abstract,并且不能被实例化
    可以没有一个抽象方法。
      

  5.   

    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);
    }