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()); 
} 
+0

你确定代码编译完成吗?它有很多的语法错误,比如你的构造函数定义中缺少括号,并且你没有指定任何方法返回类型。 –

你犯了一个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());