2016-11-09 73 views
-1

我需要通過調用超類中的set方法來設置子類中的值。我需要從子類在子類中設置方法

階級異己

public class Alien { 
    //Instance variables 
    public String monsterName; 
    public int HP; 
    //A method that sets monster properties 
    public void setValues(String monsterN, int health) { 
     monsterName = monsterN; 
     HP = health; 
    } 
    //A method that returns the monster name 
    public String getName() { 
     return monsterName; 
    } 
    //A method that returns monster's health 
    public int getHP() { 
     return HP; 
    } 
    //ToString method that prints out the info 
    public String toString() { 
     return("Monster name: " + getName() + "Monster's current health point: " + getHP()); 
    } 
} 

蛇類

public class SnakeAlien extends Alien { 
    //Instance variable 
    //Set the snake values 
    Alien aObject = new Alien(); 
    aObject.setvalues("Snake\n" 55)); 
} 

主類設置的怪物的名字和健康

public class Main { 

    public static void main(String[] args) { 
     Alien object = new Alien(); 
     object.toString(); 
     System.out.println(object); 

    } 

} 

我知道如何通過主類設置這些值,但我需要從Alien類的子類SnakeAlien中進行設置。

回答

0

因爲一切都是公開的(這是可怕的順便說一句),你可以簡單地調用超類的子類的方法。甚至不需要超級。

雖然你應該改變成員你不想從外部到達至少受到保護,如果你永遠不想製作一個純粹的異形物體,你應該做一個avstract類。

+0

我沒有明白這一點。我如何從沒有對象的超類中調用方法? – TecHummer

+0

@TecHummer很好,你有一個對象。事實上,你在裏面。想象一下繼承的函數,就好像它們被連接到子類的源代碼一樣。 –

+0

我還是不明白。如何在超類的子類中使用方法? – TecHummer