通过抽象类、抽象方法实现算数四则运算

P100页【4-3】

通过抽象类、抽象方法实现算数四则运算。

package duotai;

//定义Arithmetic抽象类
abstract class Arithmetic{
	private double operA,operB;//私有字段,用于存储两个操作数
	protected Arithmetic(double a,double b) {//构造方法
		operA=a;
		operB=b;
	}
	protected double getA() {//读取操作数字段的get()实例方法
		return operA;
	}
	protected double getB() {
		return operB;
	}
	public abstract String result();//用于返回两个操作数计算结果的抽象方法
}


//定义继承于Arithmetic抽象类的四个子类
class NumAdd extends Arithmetic {//继承于Arithmetic类的子类(加)
    public NumAdd(double a,double b) {//构造方法
   	    super(a,b);
    }
    public String result() {//实现抽象方法
   	    return"两数和为:"+(getA()+getB());//getA()、getB()由父类继承而来
    }
}

class NumSub extends Arithmetic {//继承于Arithmetic类的子类(减)
    public NumSub(double a,double b) {//构造方法
   	    super(a,b);
    }
    public String result() {//实现抽象方法
   	    return"两数差为:"+(getA()-getB());//getA()、getB()由父类继承而来
    }
}

class NumMulit extends Arithmetic {//继承于Arithmetic类的子类(乘)
    public NumMulit(double a,double b) {//构造方法
   	    super(a,b);
    }
    public String result() {//实现抽象方法
   	    return"两数积为:"+(getA()*getB());//getA()、getB()由父类继承而来
    }
}

class NumDivi extends Arithmetic {//继承于Arithmetic类的子类(除)
    public NumDivi(double a,double b) {//构造方法
   	    super(a,b);
    }
    public String result() {//实现抽象方法
    	if(getB()!=0) {//除数不能为0
   	        return"两数商为:"+(getA()/getB());
   	    }
    	else {
    		return"除数不能为零";
    	}
    		
    }
}


//在主类中编写测试代码
public class Test {//主类

	public static void main(String[] args) {//主方法
		// TODO Auto-generated method stub
		
		NumAdd add=new NumAdd(12,20);//创建子类对象
		System.out.println(add.result());//调用子类实现的result()方法
		
		NumSub sub=new NumSub(12,20);
		System.out.println(sub.result());
		
		NumMulit mulit=new NumMulit(12,20);
		System.out.println(mulit.result());
		
		NumDivi divi=new NumDivi(12,20);
		System.out.println(divi.result());
	}

}

包和类的组织架构截图:
在这里插入图片描述
运行结果截图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值