gwooden_코린이

java_다형성_221130(8일차) 본문

java/8일차

java_다형성_221130(8일차)

gwooden22 2022. 11. 30. 10:08
728x90
package 다형성;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		
		User user = new User();
		Garen garen = new Garen(); //garen -> 가렌 클래에 있는 정보가 들어있다
		Teemo teemo = new Teemo();
		
		Scanner sc = new Scanner(System.in);
		
		int a; // 챔피언 선택을 받을 정수  선언
		char key; // 스킬을 입력 받을 문자 선언
		
		System.out.print("챔피언을 선택하세요[1.가렌  2.티모] :");
		a= sc.nextInt();
				
				if(a == 1) {
					user.selectMsg(garen); //객체 자체를 전달받아 쓰게끔
					System.out.print("사용할 스킬 입력[q, w, e, r] : ");
					key = sc.next().charAt(0);         
					user.skillMsg(garen, key);
				} else {
					user.selectMsg(teemo); //객체 자체를 전달받아 쓰게끔
					System.out.print("사용할 스킬 입력[q, w, e, r] : ");
					key = sc.next().charAt(0);         
					user.skillMsg(teemo, key);
				}

	}

}

챔피언을 선택하세요[1.가렌  2.티모] :1
가렌을 선택하였습니다
사용할 스킬 입력[q, w, e, r] : w
가렌이w스킬 사용

 

package 다형성;

public class User {
//	               ( int num) 이랑 같은 의미
	void selectMsg(Champion champion) {
//		     (Champion 인터페이스 champion)
		champion.selectChampion();
//		garen.selectChampion();
	}
//	                   (부모 객체)                    
	void skillMsg(Champion champion, char key) {
		champion.userSkill(key);
//		챔피언에 있는 userSkill 메서드를 호출
	}

}

package 다형성;

public class Teemo implements Champion {

	@Override
	public void selectChampion() {
		System.out.println("티모를 선택하였습니다");

	}

	@Override
	public void userSkill(char key) {
		System.out.println("티모가" +key+ "스킬 사용");

	}

}
package 다형성;

public class Garen implements Champion {

	@Override
	public void selectChampion() {
		System.out.println("가렌을 선택하였습니다");

	}

	@Override
	public void userSkill(char key) {
		System.out.println("가렌이" +key+ "스킬 사용");

	}

}

package 다형성;

public interface Champion {

	void selectChampion();
	void userSkill(char key);
	
}
728x90
Comments