Java---引用类型强制转换之学生、干部
当时这些都想发博客记录的,因为接受不了别人上博客抄袭,就算了。现在全补好。
1. 编写一个学生类,包括语文数学成绩,包括返回学生信息toString、计算综合测评分方法(成绩之和),要求有带参数的构造函数。
2. 编写学生类的子类学生干部类(有职务奖励分reward),要求用到重载(两个以上构造函数)、this和super构造函数调用、覆盖(计算综合测评分,成绩之和加上奖励分)。
3. 要求测试子类对象赋值给父类引用,并用这个引用调用父类方法toString、子类方法getReward,观察发生的情况并改正。
将父类引用类型强制类型转换为子类对象之后重新调用父类方法父类方法toString、子类方法getReward后发生的情况。
细节+代码:
public class StudentCadra {
public static void main(String args[]){
String s1;
double reward2;
student test = new cadra("weixinwei","12080002001","female",70,70,70);
cadra test2 = (cadra)test;
s1 = test2.toString();
System.out.println("The information : "+"\n"+s1);
reward2 = test2.getReward();
System.out.println("The reward of cadra is : "+reward2);
}
}
class student{
double chinese,math;
String num,name,sex;
student(){
num = name = sex = "";
}
student(String num1,String name1,String sex1,double chinese1,double math1){
num = num1;
name = name1;
sex = sex1;
chinese = chinese1;
math = math1;
}
public String toString(){
String s = "name : "+name
+"\nnumber : "+num
+"\nsex : "+sex
+"\nchinese : "+chinese
+"\nmath : "+math
+"\nsum : "+sum(chinese,math);
return s;
}
double sum(double chinese,double math){
double sum;
sum = chinese+math;
return sum;
}
}
class cadra extends student{
double reward;
cadra(){
super();
reward = 0.0;
}
cadra(String name1,String num1,String sex1,double chinese1,double math1){
super(name1,num1,sex1,chinese1,math1);
}
cadra(String name1,String num1,String sex1,double chinese1,double math1,double reward1){
this(name1,num1,sex1,chinese1,math1);
reward = reward1;
}
double getReward(){
return reward;
}
double sum(double chinese,double math,double reward){
double sum;
sum = chinese+math+reward;
return sum;
}
}