2011-05-06 121 views
-3
class Person { 
    String name = 「No name"; 
    public Person(String nm) { name = nm; } 
} 

class Employee extends Person { 
    String emplD = 「0000」; 
    public Employee(String id) { empID = id; } 
} 

public class EmployeeTest { 
    public static void main(String[ ] args) 
    { 
     Employee e = new Employee(」4321」); 
     System.out.println(e.empID); 
    } 
} 
+3

爲什麼你認爲有錯誤?請問一個*適當的*問題。 – 2011-05-06 09:32:20

+0

是什麼問題? – Ikke 2011-05-06 09:32:34

+3

我能看到的一個問題是可怕的縮進。 – Ingo 2011-05-06 09:33:56

回答

1

變化「No name’「No name"(收盤報價)

1

也許是在這裏:

String name = 「No name’;

它應該是:

String name = "No name";

而且,我不知道如果這是你從d粘貼的編輯器卷板機這一點,但是這是錯誤太:

Employee e = new Employee(」4321」);

應該是:

Employee e = new Employee("4321");

0

你EMPID場不公鑰/有沒有爲它存取方法/它沒有被定義爲屬性。如果除了源代碼和模糊的帖子標題之外,絕對不提供有關錯誤的信息,也不要期望人們提供幫助。

1

改變這一行

String name = 「No name’;

到:

String name = 「No name";

檢查結束qoutes。

3

員工的構造函數必須調用其超強的構造,人的構造函數。

public class Person 
{ 
    private String name; 

    public Person(String nm) 
    { 
    this.name = nm; 
    } 

    public String getName() 
    { 
    return this.name; 
    } 
} 

public class Employee extends Person 
{ 
    private String emplD; 

    public Employee(String nm, String id) 
    { 
    super(nm); 
    this.empID = id; 
    } 

    public String getId() 
    { 
    return this.empID; 
    } 
} 

public class EmployeeTest 
{ 
    public static void main(String[] args) 
    { 
    Employee e = new Employee("Some Name", "4321"); 
    System.out.println(e.getID()); 
    } 
} 
1

一些事情:

  1. 您使用了錯誤的那種在你的字符串引號字符。您需要使用"。不',或者

  2. Person類沒有默認構造函數。正因爲如此,你必須顯式調用super("some name");爲您Employee構造函數的第一行(我建議增加一個構造函數既nameemployeeId作爲參數)。

  3. 您申報的財產爲emplD(用小寫字符L),但你試圖給它empID(以大寫字符I)。你可以任意調用它,但名字需要在兩個地方匹配。

  4. 你對象的設計違反了封裝的基本原則。 nameempID屬性應該是私有字段,如果外部類需要訪問這些值,則應提供適當的公共getter方法。換句話說,而不是e.empID你應該能夠說e.getEmpID()

  5. 在單個文件中定義多個類通常不是很好的編碼風格,特別是當所有類都可公開訪問時。

0

你要調用的類`Employeesuper(ID)的構造函數的超類(Person)的構造;請在下面找到正確的代碼。

public Employee(String id) {super(id);empID =id; 
0

調用超類構造函數將解決問題!

public class Person { 
    String name = "No name"; 
    public Person(String nm) { name = nm; } 
    } 

    public class Employee extends Person { 
    String empID = "0000"; 
    public Employee(String id) { 
    super("Some Name"); 
    empID = id; } 
    } 

    public class EmployeeTest { 
    public static void main(String[] args){ 
    Employee e = new Employee("4321"); 
    System.out.println(e.empID); 
    } 
    }