gwooden_코린이

java_다형성02_221129(7일차) 본문

java/7일차

java_다형성02_221129(7일차)

gwooden22 2022. 11. 29. 09:39
728x90

package 다형성;

public class PolyEx2 {

	Child p = new Parent();//이 경우 애초에 업캐스팅이 안되어 있어서 불가능
	
	//범위가 더 넓은 쪽으로 올라가서 먼저 처리가 되어야 된다.
	Parent p = new Child(); //업캐스팅
	
	p.run();
	
	//업캐스팅 돼었던건만 다운 캐스팅이 된다.
	
	
		(double)a
	Child c =(Child)p; //다운 캐스팅
	
	c.eat();
	
}

package 다형성02;

//매번 새로운 객체를 만들때 마다 기존 객체가 쓸모가 없어지지만, 기존 객체는 남겨둬야 될 때
//체계적으로 관리하기 위해 다형성을 사용

public class Computer {

	public static void main(String[] args) {
		
		GraphicCard gc = new GraphicCard();
		gc.process(); //gc 라는 메서드 호출 여기서 gc는 GraphicCard 클래스를 불러온다.
					  //출력은 그래픽카드 처리 문자열이 출력
		
		
		gc = new Amd(); //gc 메서드를 Amd로 형변환
		gc.process(); //출력시 Amd 그래픽 처리로 문자열 출력
		
		
		gc = new Nvidia(); //gc 메서드를 Nvidia로 형변환
		gc.process(); //출력시 Nvidia 그래픽 처리로 문자열 출력
		

	}

}
package 다형성02;

public class Nvidia extends GraphicCard {
	
	public void process() {
		System.out.println("Nvidia 그래픽 처리");
	}

}
package 다형성02;

public class Amd extends GraphicCard { 

	public void process() {
		System.out.println("AMD 그래픽 처리");
	}
	
}
package 다형성02;

public class GraphicCard {
	
	int memory;
	
	public void process() {
		System.out.println("그래픽 처리");
		}

}

package 다형성03;

public class Game {

	public static void main(String[] args) {
		
		Player p = new Player(); 
		p.attack(); //현재 플레이어는 별다른 직업이 없는 상태 (기본형태)
		
		p = new Mage();
		p.attack();
		
		p = new Knight();
		p.attack();
		

	}

}
기본 공격을 합니다
마법사가 기본 공격을 합니다
기사가 기본 공격을 합니다
package 다형성03;

public class Mage extends Player{

	public void attack() {
		System.out.println("마법사가 기본 공격을 합니다");
	}
	
}
package 다형성03;

public class Knight extends Player {

	public void attack() {
		System.out.println("기사가 기본 공격을 합니다");
	}
	
}
package 다형성03;

public class Player {
	
	int hp;
	
	public void attack() {
		System.out.println("기본 공격을 합니다");
	}

}
728x90

'java > 7일차' 카테고리의 다른 글

java_상속+오버라이딩_221129(7일차)  (0) 2022.11.29
java_final_221129(7일차)  (0) 2022.11.29
java_객체지향 추상_221129(7일차)  (0) 2022.11.29
java_tv만들기_221129(7일차)  (0) 2022.11.29
java_다형성03_221129(7일차)  (0) 2022.11.29
Comments