//////
Search
🗒️

다형성

날짜
2022/09/26
작성자
우주완
이상훈
카테고리
회고

다형성(Polymorphism)

부모 클래스 변수로 자식 클래스 객체를 참조할 수 있다.
class Shape{ public Shape() {} public void draw() { System.out.println("도형을 그립니다."); } } class Rectangel extends Shape{ public Rectangel() {} public void draw() { System.out.println("사각형 도형을 그립니다."); } }
Java
복사
Shape shape = new Shape(); // 도형을 그립니다. Shape shape2 = new Rectangel (); // 사각형 도형을 그립니다.
Java
복사
Rectangel 의 draw 메소드가
Shape의 draw메소드를 오버라이딩을 한것이다.
이것을 업캐스팅(upcasting, 상형 형변환)이라고 한다.

다형성의 이해

부모 = 자식 (가능 하다)
자식 = 부모 (불가능 하다)
Shape shape2 = new Rectangel (); // 사각형 도형을 그립니다. Rectangel shape2 = new Shape // 컴파일 오류! --------------------------------------------------------------- class Parent { ... } class Child extends Parent { ... } ... Parent pa = new Parent(); // 허용 Child ch = new Child(); // 허용 Parent pc = new Child(); // 허용 Child cp = new Parent(); // 오류 발생.
Java
복사
다형성이 되려면 오버라이딩이 되어있어야 하고 부모가 메소드가 아닌 자식 메소드를 가지고온다…?
부모클래스에 있는 내용을 자식 클래스에 사용할 수 있고 자식클래스에만 있는것을 부모클래스에서 사용할수없다