2017-10-15 319 views
-3

爲什麼我運行此代碼時得到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

你確定代碼編譯完成嗎?它有很多的語法錯誤,比如你的構造函數定義中缺少括號,並且你沒有指定任何方法返回類型。 –

回答

0

你犯了一個Department,然後將其rate爲3 你再發一個Employee,沒有設定其速度,所以它具有0.1

rate當你說你new得到一個全新的對象。爲了得到你想要的代碼改變什麼:

Employee employee = New Department(); 
employee.setRate(); 
System.out.println(employe.calculateSalary()); 

你的整個代碼雖然是陌生的,一個部門擁有員工。員工不是一種部門。我們使用擴展來表示X是一種Y.

0

孩子確實繼承父母變量。然而,部門和僱員是不同的對象,所以他們不共享變量。請嘗試下面的代碼:

Employe employe = new Employe(); 
employe.setRate(); 
System.out.println(employe.calculateSalary()); 
相關問題