오늘은 객체지향에서 중요한 부분이라고 강조해주신 네가지를 내가 이해할 수 있는 정도로 정리해봤다.
객체지향 프로그래밍이란 정말 간단하게 압축해서 말하면 클래스로 코드를 짜는 것
클래스
이전 글 참고
상속
a 클래스의 속성과 메서드를 b 클래스가 물려받는 행위를 상속이라고 함
불필요한 코드 반복을 줄일 수 있음
extends 키워드를 사용하여 부모클래스(=슈퍼클래스)를 확장 상속
오버라이딩은 덮어 쓰는 행위를 뜻함
자식클래스가 부모클래스 함수의 동작을 새롭게 정의하는 것
서브타입 -> 슈퍼타입 : upcasting
슈퍼타입 -> 서브타입 : downcasting
추상 클래스
인스턴스화를 할수없는 클래스
상속을 통해 자식클래스에서 메서드를 강제로 제각각 구현하는 용도
abstract 를 사용하여 정의 (ex: abstract class Shape)
구체적인 구현은 없는 함수를 가지며 상속할 함수만 정의함
(틀만 먼저 만들어놓고 자식클래스에서 그 틀을 가져온 후 살을 붙인다고 이해함)
이 추상함수를 상속받은 자식클래스에서는 무조건 추상함수를 가지고 함수의 내용을 구체적으로 정의해줘야함
인터페이스
타입스크립트에서 객체의 타입을 정의하는데 사용
객체가 가져야하는 속성과 메서드를 정의하고 인터페이스를 구현한 객체는 반드시 해당 부분을 정의해야함
추상클래스와 용도 부분에서 비슷한 점이 있기 때문에 차이점을 중점으로 공부하면 좋을 것 같다.
'🪩 > 기타' 카테고리의 다른 글
객체 지향 설계 5원칙 (SOLID) (0) | 2024.02.22 |
---|---|
계층형 아키텍처 패턴 (Layered Architecture Pattern) (0) | 2024.02.21 |
객체(object), 클래스(class), 인스턴스(instance) (0) | 2024.02.16 |
[AWS] ec2 ssh 터미널 진입 방법 (0) | 2024.02.13 |
[mysql] mac m1Homebrew, mysql 설치 방법 (1) | 2024.02.07 |