黑马程序员技术交流社区

标题: 关于super使用问题的请教 [打印本页]

作者: 冷锋也温柔    时间: 2013-10-8 10:51
标题: 关于super使用问题的请教
Bank.java
public class Bank{
int saveMoney;
int year;
double intrest;
public double computerInterest(){
interest=year*0.035*saveMoney;
return interest;

}
}
ConstructionBank.java
public class ConstructionBank extends bank{
double year;
public double computerInterest(){
super.year=(int)year;<--------------这里为什么super直接就获取了year的整数部分了呢????
double remainNumber=year-(int)year;
int day=(int)(remainNumber*1000);
interest=super.computerInterest()+day*0.0001*savedMoney;<----------一样的问题
System.out.printf("%d元存%d年零%d天\n"savedMoney,super.year,day);
return interest;

}
}
Example5_5.java{
public class Example5_5{
int amount=8000;
ConstructionBank Bank=new ConstructionBank();
bank.savedMoney=amount;
bank.year=5.216;
double interest=bank.computerInterest();
System.out.printf("利息是%5.3f元\n"interest);
}
}
这个程序只写了一部分,我只看懂了这个是继承类,year在子类中被重写了,这个也懂,super调用父类(super.year=(int)year;)也明白。可是
super.year=(int)year为什么直接调用了year的整数部分"5"呢
super

作者: 横塘西岸    时间: 2013-10-8 10:57
super是子类调用父类的东西,因为ConstructionBank继承了Bank,所以可以调用它里面的变量
作者: murder_fol    时间: 2013-10-8 11:12
ConstructionBank 继承了bank,就有两个year:一个是super.year (int类型),一个是this.year(double类型)。super.year=(int)year;是个赋值语句,将this.year的整数部分给super.year,相当于super.year=(int)this.year;
作者: To    时间: 2013-10-8 11:25
这些问题在论坛有很多文章,你自己去找找。找不到在来提问,楼上都解答的很好。
作者: To    时间: 2013-10-9 08:40
如果问题已解决,请将帖子改为提问结束,如果没有解决请楼主继续提问,谢谢合作




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2