01. UML : 표준 도식화
기호
- 클래스 : 사각형
- 상속 : 삼각형 화살표
- 사용(use) : 그냥 화살표 → 사용하는 클래스는 사용되는 클래스(의존객체)에 의존한다
- 강결합이냐, 연결합이냐 → 다이아몬드 색 채워져있냐, 없냐
- 실선 → 고정되어있다. 상시적
- 점선 → 멤버 변수 고정 안됨, 일시적 / 지역변수로 사용하겠다 / 매개변수

02. 개념
- 키워드 : extands
- inheritance 안쓰는 이유 : 확장개념이라서 → a를 확장해서 b를 정의하겠다.

- 용어
- 부모 (parent) 상위(super)
- 자식(child) 하위
- 부모는 1개만가능
- 코드 재사용 아주 쉽게 할 수 있다
03. 호출
- 순서 : 스택 → 자식 → 부모
- 스택에서 부모 바로 못간다.
- 자식 호출해도 부모 인스턴스 같이 만들어져서, 같이 호출되는 개념
- ★일반적으로 기본 생성자 무조건 만든다.
- 부모생성자를 먼저 호출한다.
- super() → this() : super를 제일 앞에 써야한다.
04. 재정의
@override : 오버라이딩 체크
- 주석인데, 컴파일에게만 알려주는 주석
- 코드에는 영향 없다

05. 자동타입변환
upcasting : 부모 = 자식 → 가능
downcasting : 자식 = 부모 → 불가능 → 강제 형변환 해줘야한다.
★ 자바는 실체가 중요하다
06. 다형성
상속을 기본으로 이루어진다.

- car는 tire에 의존한다.
- car는 tire를 사용한다.
설계문서 : 클래스 다이어그램
- 소스코드 : 부록
- 코드리뷰할때, 클래스 다이어그램으로 한다.
다형성의 패턴
- 위 클래스 다이어그램 나오면 다형성이구나라고 생각하면 된다.
강결합/연결합
- 결합도(약하게 연결시켜라)는 낮추고, 응집도(단일책임원칙:한가지 일만 해야한다)는 높여야한다.
- 연결합을 추구한다.

DI : 의존객체를 주입받는다 → 약한결합

07. 추상 클래스
- 공통점 뽑아서 분류 위해서 선언한 클래스 → 참조 클래스
- new 로 만들면 안돼! → 키워드준다
키워드 : astract
- 참조용으로 쓰겠다. 인스턴스 만들지 못한다.
- 자식 클래스 만들고 인스턴스 만들어야한다.
필드에 대해서

메서드에 대해서
- 부모 : abstract / sound() → 반드시!
- 자식 : abstract / sound() → 반드시!

★ 오늘 중요한 것
다형성
전략패턴
객체지향 원칙 2가지
1) OCP : 기능 확장, 수정발생하면 안된다
기능확장은 자식에서 이루어진다.
사용자쪽에서 수정 사항 없다.
2) SRP : 단일책임원칙
08. 오후수업
추상클래스
- 큰 범위니까 더이상 만들지말고, 더 세부적으로 나눠서 만들어라
- 상속받아서 만들어라
