불로구

25강. (JAVA) 자바 - 타입 변환 & 다형성 (1) 본문

프로그래밍/JAVA

25강. (JAVA) 자바 - 타입 변환 & 다형성 (1)

맹이맹이 2020. 6. 16. 23:50
반응형

기본 타입에 타입 변환이 있듯, 클래스에서도 타입 변환이 있다! 이번 강의는 총 2편으로 놔누어 타입 변환과 다형성에 대해 알아보자!

다형성

- 사용 방법은 동일하지만 다양한 객체를 이용해서 다양한 실행 결과가 나오게 하는 자바의 성질을 의미한다

이 말의 의미는, 자동차는 어떤 엔진을 쓰냐에 따라 주행 속도가 달라진다는 말과 비슷하다!

다형성의 구현 방법

- 메서드 재정의 + 타입 변환

1) 자동 타입 변환

- 자동 타입 변환이란, 프로그램 실행 중 자동으로 타입을 변환하는 것을 말한다.

이렇게 자식은 부모의 타입으로 자동 타입 변환을 할 수 있다.

자식은 부모의 특징과 기능을 상속받았기 때문에 동일하게 취급될 수 있는 것이다.

class Product{
	final public void product(){
		System.out.println("상품");
	}
}

class Computer extends Product{
	
}
class Mouse extends Computer{
	
}
public class Test {
	public static void main(String[] args){
		Product p = new Product();
		Computer c = new Computer();
		Mouse m = new Mouse();
		
		Product p1 = c;
		Product p2 = m;
		Computer c1 = m;
		
	}
}

}

위 소스의 상속 계층을 그림으로 나타내면 이러한 모습이다. computer는 product를 상속하므로 자동 타입 변환이 가능하며, product를 상속받는 computer를 상속하는 mouse 또한 product로 자동 타입 변환이 가능하다

2) 강제 타입 변환

- 강제 타입 변환은 부모 타입을 자식 타입으로 변화하는 것을 말한다.

- 단, 모든 부모 타입이 자식 타입으로 변환하지 못하고 자식 타입이 부모 타입으로 자동 타입 변환 후 다시 자식

타입으로 변환하는 것을 강제 타입 변환이라고 한다!

별표 친 부분을 주의하면 된다!

예전에 필기한 노트를 참고하면 좋을 것 같다!!

 

반응형
Comments