gwooden_코린이

java_인터페이스02_221130(8일차) 본문

java/8일차

java_인터페이스02_221130(8일차)

gwooden22 2022. 11. 29. 18:10
728x90
package 인터페이스;

import java.util.Scanner;

public class InGame {

	public static void main(String[] args) {
		
		
		int a;
		
		Scanner sc = new Scanner(System.in);
		
		System.out.print("챔피언을 선택하세요 [1.가렌  2.티모] :");
		a = sc.nextInt();
		
		if(a == 1) {
//			부모 클래스<----자식 클래스     업캐스팅
			Champion user = new Garen();
			Champion.hello("가렌");
//			user.hello("가렌"); <-- 인터페이스 내 만들어 둔 것이 추사 메서드, 기본 메서드, 스태틱 메서드 등이 있어서
//			스태틱 메서드는 인터페이스 자체에서 사용만 가능 따로 객체로 불러오는 건 불가능
			user.sound();
			user.skillQ();
			user.skillE();
		} else {
			Champion user = new Teemo();
			Champion.hello("티모");
			user.sound();
			user.skillW();
			user.skillQ();
		}

	}

}
챔피언을 선택하세요 [1. 가렌  2.티모] :1
가렌님 소환사의 협곡에 오신것을 환영합니다.
기본 챔피언 사운드
가렌 Q 사용
가렌 E 사용

package 인터페이스;

public class Teemo implements Champion {

	@Override
	public void skillQ() {
		System.out.println("티모 Q 사용");

	}

	@Override
	public void skillW() {
		System.out.println("티모 W 사용");

	}

	@Override
	public void skillE() {
		System.out.println("티모 E 사용");

	}

	@Override
	public void skillR() {
		System.out.println("티모 R 사용");

	}
	
	public void sound() {
		System.out.println("하나! 둘! 셋! 넷!");
	}

}

package 인터페이스;

public class Garen implements Champion {

	@Override
	public void skillQ() {
		System.out.println("가렌 Q 사용");

	}

	@Override
	public void skillW() {
		System.out.println("가렌 W 사용");

	}

	@Override
	public void skillE() {
		System.out.println("가렌 E 사용");

	}

	@Override
	public void skillR() {
		System.out.println("가렌 R 사용");

	}

}


package 인터페이스;

public interface Champion {
	
	//추상 메서드 <-- 해당 기능 무조건 사용해야 됨
	//구현 따로 하지 않고 선언만
	void skillQ();
	void skillW();
	void skillE();
	void skillR();
	
	//기본 메서드 
	//구현까지
	default void sound() {
		System.out.println("기본 챔피언 사운드");
	}
	
	//스태틱 메서드
	//구현까지
	static void hello(String name) {
		System.out.println(name + "님 소환사의 협곡에 오신것을 환영합니다.");
	}
	
	

}


 

728x90
Comments