JAVA高手救急 现在在考试 这是个改错题 星号下面就是错误 请改正 求好人 好人一生平安 5555
//Java3.java
/**********found***************/
final class Employee {
public String name; //姓名
double salary; //工资
public Employee(String n,double s) { //构造方法
name = n;
salary = s;
}
abstract public double getSalary(); //获取工资
}
class Manager extends Employee{ //继承Employee
private double bonus=0; //奖金
public Manager(String n, double s,double b) {//构造方法
/**********found***************/
Employee(n,s); //调用父类构造方法
bonus=b;
}
public double getSalary(){
return salary;
}
public double getIncome() { //获取收入
return this.getSalary()+ bonus;
}
}
public class Java3 {
public static void main(String[] args) {
Manager boss = new Manager("杰克",12000,5000);
System.out.println("姓名:" + boss.name +
"\n薪水:"+ boss.getIncome());
}
}
追问:大神 谢谢您帮我解答 但是我现在对这个一窍不通 您老能不能直接告诉我 在哪里改 怎么改 ?谢谢啊 其实不用多写 就是星号下面的那一句是错误的 改下就行了老大 能把你的 QQ号给我吗 ? 我是个新手 以后还好请教你 现在像您这么热心的人太少了 还有一题
答案:final 类不能被extends,
非abstract类中不能有abstract修饰的属性和方法,
其他:final 类是不可以被继承的,这个你知道吧。本身你在一个非抽象类里面定义一个抽象方法就是一个错误了,你现在是在一个final类里面定义一个抽象方法,那就是错上加错了。。。
额。。。。。不好意思,我看错了,不是debug是改错是吧。。。
把 final class Employee改成 abstract class Employee 就行了。
另外,子类调用父类方法要用
super super(n,s); 就行了。super在子类中就相当于父类的名字。
其实只要改星号下面的第一句就可以了 = 。=
easy job。
上一个:java分页
下一个:java 负责对象序列化