FastCampus 강의/한번에 끝내는 Java&Spring 웹 개발

Ch03. 객체 지향 핵심

의그 2021. 12. 7. 17:56

01. 객체 간의 상속

클래스 상속

- 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속(inheritance)받아서 속성이나 기능을 확장하여 클래스 구현.

-.이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현할 때 상속 사용.

상속하는 클래스 : 상위 클래스 / parent class / base class / super class

상속받는 클래스 : 하위 클래스 / child class, derived class, subclass

-상속의 문법 

class B extends A{} : extends 키워드 뒤에는 단 하나의 클래스만 올 수 있음(단일 상속).

02. 상속을 활용한 멤버십 클래스 구현

멤버십 시나리오

protected 접근 제어자

- 상위 클래스에 선언된 private 멤버 변수는 하위 클래스 접근 가능 / 외부 클래스 접근 불가

Customer클래스
Customer클래스를 상속받는 VIPCustomer 클래스
출력 결과

 

03. 상속에서 클래스 생성 과정과 형 변환

VIPCustomer() 생성자만 호출했는데, Customer()가 먼저 호출된 상황.

자식 생성자가 생성되기 전에, 부모 생성자인 super(); 키워드가 먼저 호출된다.

super(); 은 default constructor이므로 생략 가능.
정리

 

 

04. 메서드 재정의(overriding)

05. 메서드 재정의와 가상메서드의 원리

06. 다형성과 다형성을 사용하는 이유

GoldCustomer 등급을 추가하여 다형성 테스트.

 

07. 상속은 언제 사용할까?

08. 다운 캐스팅과 instanceof

09. 추상 클래스의 의미와 구현 방법

이탤릭체(기울임)로 된 클래스/메소드는 추상 클래스/메소드

10. 추상 클래스를 활용한 템플릿 메서드 패턴

프레임워크? 라이브러리?

JDK(Java Development Kit)은 라이브러리이다(프레임워크가 아님).

안드로이드는 라이브러리가 아닌, 프레임워크이다.

프레임워크를 도입한다? 이미 틀은 정해져 있고, 내용들을 채우는 작업을 하는 것.

11. 구현 코드가 없는 인터페이스

12. 인터페이스는 왜 사용하는가

13. 프로그램에서 인터페이스의 역할과 다형성

14. 인터페이스의 여러가지 요소

15. 여러 인터페이스 구현하기, 인터페이스의 상속

16. 복습