<--애드센스-->

매개변수의 다형성

조상타입의 매개변수로 자손타입의 인스턴스를 받아오는 것이다.

Attack 메서드를 효율적으로 만들기 위해선 각각 다른 타입의 인스턴스들을 하나의 메서드로 다양한 대상을 공격할 수 있어야한다. 

public void Attack(Unit victim){//공격자.Attack(피해자)로 사용

if(this.live==true&&victim.live==true) //피해자와 공격자가 모두 살아있어야함

victim.setHp(victim.getHp()-(this.getWeapon()-victim.getArmor()));

else

return;

}

public static void main(String[] args){

Student St = new Student(50, 0);//체력 50, 마나0, 공격력 10 의 St를 생성

Unit A = new Unit(10, 0);//체력 10, 마나 0짜리 A를 생성

  System.out.println("A의 체력: "+A.hp);

St.Attack(A);//St가 A를 공격

System.out.println("A의 체력: "+A.hp);

}

결과: A의체력: 10

       A의 체력: 0

class Student는 class Unit의 자손 클래스이다.

이를 통해 알 수 있는 것은 매개변수로 조상타입을 받아도 자손클래스가 매개변수로서 들어갈 수 있다는 것이다.

'프로그래밍 > Java' 카테고리의 다른 글

[LWJGL]Display  (0) 2016.02.19
[LWJGL] Display 함수 표  (0) 2016.02.19
프로젝트  (0) 2016.02.14
2016/2/12 Math.roundm,sqrt, 클래스변수와 인스턴스변수  (0) 2016.02.12
2016/2/11-접근 제어자, Scanner, 생성자  (0) 2016.02.11

+ Recent posts