Java - 为什么孩子不会继承父母变量?
问题描述:
为什么我运行此代码时得到0而不是1500?Java - 为什么孩子不会继承父母变量?
public class Department {
private double rate = 0.0;
public Department {
}
public getRate(){
return rate;
}
public setRate(){
rate = 1 + 2;
}
}
public class Employe extends Department {
private double salary = 0;
public Employe {
}
public calculateSalary(){
salary = getRate() * 500;
}
}
public static void main(String[] args) throws IOException {
Department department = New Department();
department.setRate();
Employe employe = new Employe();
System.out.println(employe.calculateSalary());
}
答
你犯了一个Department
,然后将其rate
为3 你再发一个Employee
,没有设定其速度,所以它具有0.1
的rate
当你说你new
得到一个全新的对象。为了得到你想要的代码改变什么:
Employee employee = New Department();
employee.setRate();
System.out.println(employe.calculateSalary());
你的整个代码虽然是陌生的,一个部门拥有员工。员工不是一种部门。我们使用扩展来表示X是一种Y.
答
孩子确实继承父母变量。然而,部门和雇员是不同的对象,所以他们不共享变量。请尝试下面的代码:
Employe employe = new Employe();
employe.setRate();
System.out.println(employe.calculateSalary());
你确定代码编译完成吗?它有很多的语法错误,比如你的构造函数定义中缺少括号,并且你没有指定任何方法返回类型。 –