5주차-2

yeezze·2022년 4월 3일
0

목차

  1. 다형성(polymorphism)

1. 다형성 (polymorphism)

다형성이란 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미한다. 자바에서는 이러한 다형성을 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하여 구현하고 있다.

(참고 : http://www.tcpschool.com/java/java_polymorphism_concept)

이번 주차 강의에서 사용한 다형성 개념 부분의 코드이다.
팩토리 패턴

Shape shape;

if(this.eSelectedTool == ETools.eRectangle) {
    this.shape = new Rectangle(x, y);
} else if(this.eSelectedTool == ETools.eOval) {
    this.shape = new Oval(x, y);
} else if(this.eSelectedTool == ETools.eLine) {
		this.shape = new Line(x, y);
} else if(this.eSelectedTool == ETools.ePolygon) {
    this.shape = new Polygon(x, y);
}

Panel 파일 안에 Shape 객체를 하나 선언해놓고, 조건문에 따라 알맞은 도형들을 생성한다. Shape 클래스는 함수적 인터페이스가 동일하여 특정한 형태로써 작동될 수 있는 추상화된 추상클래스이다. 구체화된 도형 클래스들은 Shape 클래스를 상속받고 있다. Shape 클래스 안에 resize, draw 메소드가 존재하는데 각각의 도형 클래스 내부에서 해당 메소드들을 오버라이딩하여 구현한다.

profile
백엔드 개발자 😊

0개의 댓글