1、if(emp instanceof Programmer) 判断传递给calcPayroll(Employee emp)的参数是不是Programmer类型的实例变量。2、money+=((Programmer)emp).bonus();等同于money = money+((Programmer)emp).bonus(); 执行后的money的值是15000。3、System.out.println("Payroll for progrer is"+pr.alcPayroll(prg)); 调用pr.alcPayroll(prg),把Programmer类的实例变量传递给alcPayroll()方法。4、System.out.println("payroll for Manager is"+pr.calcPayroll(mgr)); 调用pr.alcPayroll(mgr),把Manager类的实例变量传递给alcPayroll()方法。所以if(emp instanceof Programmer)会返回false,得到的money值是4000。
解决方案 »
- eclipse调试出现Source not found.错误
- 怎么确定一个string里是不是有中文
- 更改IP和DNS问题
- 中秋将至,散分,当发个红包给各个独在异乡闯荡的兄弟姐妹们,中秋节快乐!
- 急,在线等待,请问高手 我如何何动态调用方法和设定方法
- 想在自己开发的软件中加入插件支持,问问路过的各位老大
- java 引用的问题
- 请教高手HTTPURLConnection的问题
- 这种情况是不是只能用Vector?
- 我用的是JDK1.3版,需要下载SWING吗?
- [Java新手]:一个关于JDK环境变量的配置问题,调试一下午未成功,请大侠指点。
- 用jexcel API怎样往现有的workbook中插入sheet?
money+=((Programmer)emp).bonus();//2
如果employee是programmer,salary的基础上加上bonus。
System.out.println("Payroll for progrer is"+pr.alcPayroll(prg));//3
System.out.println("payroll for Manager is"+pr.calcPayroll(mgr));//4
都调用了基类的calcPayroll,但传的参数不一样,一个是programmer,另外就是manager.
得到的结果便是
Payroll for progrer is15000
payroll for Manager is4000顺便提醒一下,里面很多变量大小写不一致。