본문 바로가기

JAVA

다형성(polymorphism)

부모(자식)클래스의 결정에 따라 다양한(메소드 선택결정) 선택을 할 수 있다.

다형성의 대상: 상속된 인스턴스의 메소드
다형성의 필요성: 선택의 범위가 넓다.

대게 부모클래스가 자식클래스를 선택해 사용

//부모 클래스
class Car_Class {
	String name;
	int speed;
	void run() {
		System.out.println("자동차 종류 : " + name + " / 자동차 속도: " + speed);
	}
}

//Bus 이름의 자식 클래스
class Bus_Class extends Car_Class {
	Bus_Class(){
		name="버스";
		speed = 60;
	}
}

//Truk 이름의 자식 클래스
class Truk_Class extends Car_Class {
	Truk_Class(){
		name="트럭";
		speed=50;
	}
}

public class polymorphism_01 {
	
	public static void main(String[] args) {
		
		//부모클래스가 자식의 속성과 메소드들을 선택해 사용
		//현재 자식이 두개 Bus, Truk
		Car_Class car1 = new Bus_Class();
		car1.run();
		
		Car_Class car2 = new Truk_Class();
		car2.run();
		
		
	}

}

List<Integer> list = new ArrayList<Integer>(); //이것도 다형성의 예시 중 하나

만약 자식이 부모클래스에 있는걸 사용하고 싶은 경우는 형변환을 통해 해야한다

//부모 클래스
class Car_Class {
	String name;
	int speed;
	void run() {
		System.out.println("자동차 종류 : " + name + " / 자동차 속도: " + speed);
	}
}

//Bus 이름의 자식 클래스
class Bus_Class extends Car_Class {
	Bus_Class(){
		name="버스";
		speed = 60;
	}
}

//Truk 이름의 자식 클래스
class Truk_Class extends Car_Class {
	Truk_Class(){
		name="트럭";
		speed=50;
	}
}

public class polymorphism_01 {
	
	public static void main(String[] args) {
		
	//자식클래스가 부모클래스에 있는 기능을 사용하고 싶으면
        //형변환을 통해 이용
		
        //부모클래스 생성
        Car_Class car = new Car_Class();
        
        //자식 클래스가 부모클래스 안에 메소드를 사용하고 싶어 형변환 진행
	Bus_Class bus = (Bus_Class) car;
		
		
		
	}

}

'JAVA' 카테고리의 다른 글

자바 property명 주의 사항!(dto, domain, entity)  (0) 2023.10.19
File  (0) 2023.10.02
클래스, 메소드, for문, 스캐너를 이용한 구구단 출력  (0) 2022.11.04
Scanner - 입력  (0) 2022.10.28
for (반복문)  (0) 2022.10.19