꾸준히 하고싶은 개발자

8일차 다형성 본문

모두의연구소

8일차 다형성

프라우스 2023. 12. 6. 21:49

다형성 (polymorphism) 폴리모피즘

개발 을 즐겁게 다형성

어떤 것을 이렇게도 볼 수 있고, 저렇게도 볼 수 있는 것

캐릭터 가있고 오른쪽에 배트맨 왼쪽에 슈퍼맨 = 캐릭터

세부적인 부분은 다르지만 형태를 보면 캐릭터

집을 그리다 개를 그리다 카를 그리다 여기서 그리다 메서드 이름같지만 각각의 기능 속성 다 다르다 다형성이다.

abstract interface class Drawable {
	void draw();
}

인터페이스 도 타입이다

class House implements Drawable {
	void draw() {
		...
}
}
Drawable element = House(...);
List<Drawable> elements = [ ];
elements.add(Dog(...));

ex) 리스트 제네릭안에 캐릭터 넣으면 슈퍼맨 배트맨 등 넣을 수있다.

Drawable drawable = Rectangle(...);
Drawable drawable = Rectangle(...);

인터페이스 특징을 가지면 내맘대로 사용할 수있다.

다형성 활용 방법

선언을 상위 개념으로 인스턴스 생성은 하위 개념으로 한다.

추상적인 선언 = new 상세 정의

유형 자산

무게 를 쓸 수도 있다. 상위 클래스 도 쓸수있다.

인스턴스 선언 할때

캐릭터 안에 위자드 들어간다. → 결론 케릭터는 마법사의 기능 파이어볼 을 사용할 수없다.

형변환

캐스팅 실패가 되면 오류가난다.

히어로 는 파이어볼 없다 .

인스턴스의 타입 체크와 smart cast

안전하게 캐스팅이된다.

다형성

고블린

고블안에 슬라임과 고블린 있다.

같은 기능 인터페이스 그룹핑 하겠다

내 맘대로 코드를 사용하겠다.

휴먼 안에 학생과 선생님이 있다.

sword 인스턴스

double 안에 int 가 안들어간다.

num 안에 int 와 double 있다. → 다형성 is -a 관계다

변환해서 바꿀수 있다.

to String : 스트링으로변환 to int : int 변환 to double : 실수로 변환 (소수)

 

dart operator

    • :더하기 -: 빼기 *: 곱하기 나누기 :/ %: 몫으로나눈 나머지 ~/: 몫으로 나뉜다.

 

 

반올림

 

 

올림

  • 올림 함수 : ceil() // ceiling 천장으로 올린다.
  • 내림 함수: floor() // floor 바닥으로 내림 . 버림.
  • 반올림: round() 정도 알아두시고 필요할 때 문서 참조해서 찾아서 사용하시면 됩니다~

인터페이스

인터페이스 여러개 만들다 보면 교집 합 처럼 될 수있다.]

'모두의연구소' 카테고리의 다른 글

10일 제네릭  (0) 2023.12.08
9일차 인스턴스  (1) 2023.12.07
7일차 추상클래스와 인터페이스  (1) 2023.12.05
7일차 상속 (inheritance)  (2) 2023.12.05
6일차 캡슐화 (encapsulation)  (0) 2023.12.04