// CIS 3023 - Interfaces II problem #2, 3 abstract class Arithmetic { protected double result; protected String symbol = ""; public Arithmetic(double r, String s) { result = r; symbol = s; } public abstract double evaluate(); } // Addition class Addition extends Arithmetic implements Comparable { private double leftOperand, rightOperand; public Addition(double r, double lo, double ro) { super(r, "+"); leftOperand = lo; rightOperand = ro; } // evaluate public double evaluate() { return leftOperand + rightOperand; } // compareTo public int compareTo(Object obj) { Addition add = (Addition)obj; double ev1 = evaluate(); double ev2 = add.evaluate(); if (ev1 > ev2) return 1; else if (ev1 < ev2) return -1; else return 0; } }