赞
踩
- interface Computer{
- int computer(int n,int m);
- }
- class Add implements Computer{
- @Override
- public int computer(int n, int m) {
- return n+m;
- }
- }
- class sub implements Computer{
- @Override
- public int computer(int n, int m) {
- return n-m;
- }
- }
- class multiply implements Computer{
- @Override
- public int computer(int n, int m) {
- return n*m;
- }
- }
- class divide implements Computer{
- @Override
- public int computer(int n, int m) {
- if(m!=0) {
- return n/m;
- }else {
- System.out.println("分母不能为零");
- return 0;
- }
- }
- }
- class UseCompute{
- public void usecom(Computer com,int n,int m) {
- System.out.println(com.computer(n, m));
- }
- }
- public class test2 {
- public static void main(String[] args) {
- UseCompute useCompute=new UseCompute();
- useCompute.usecom(new Add(), 10, 20);
- useCompute.usecom(new sub(), 10, 20);
- useCompute.usecom(new multiply(), 10, 20);
- useCompute.usecom(new divide(), 10, 20);
- useCompute.usecom(new divide(), 10, 0);
- }
- }
在UseCompute类中传入Computer接口的实例化对象,然后在主类中实例化UseCompute类,调用usecom()方法,分别传入 Add
sub multiply divide 类的匿名对象,这就相当于完成了向上转型,在usecom()方法中进行对computer()方法的调用,由于computer()方法被子类覆写过,调用的就是覆写后的方法,这样 usecom()方法,就可以分别完成加减乘除的功能。
在进行除法操作时要注意,传入的分母一定不能为空。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。