2016-11-09 60 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