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

모든 것이 공개되어 있으므로 (끔찍한 BTW입니다) 간단하게 수퍼 클래스의 메소드를 하위 클래스에 frimbthe라고 부르기 만하면됩니다. 슈퍼도 필요하지 않습니다.

외부에서 접근하기를 원하지 않는 멤버를 최소한 보호받는 사람으로 변경해야하며, 순수한 외국인 오브젝트를 만들고 싶지 않다면,이를 avstract 클래스로 만들어야합니다.

+0

나는 그 요점을 알지 못했다. 객체없이 슈퍼 클래스에서 메소드를 호출하려면 어떻게해야합니까? – TecHummer

+0

@TecHummer 글쎄, 당신은 물건이 있습니다. 사실 당신은 그 안에 있습니다. 계승 된 함수가 하위 클라스의 소스 코드에 연결된 것처럼 상상해보십시오. –

+0

나는 아직도 그것을 얻지 않는다. 어떻게 슈퍼 클래스에서 하위 클래스의 메서드를 사용합니까? – TecHummer

관련 문제