🪩/기타

클래스, 상속, 추상 클래스, 인터페이스

S0 2024. 2. 20. 01:56

오늘은 객체지향에서 중요한 부분이라고 강조해주신 네가지를 내가 이해할 수 있는 정도로 정리해봤다.

 


객체지향 프로그래밍이란 정말 간단하게 압축해서 말하면 클래스로 코드를 짜는 것

 

클래스

이전 글 참고

 

 

상속

a 클래스의 속성과 메서드를 b 클래스가 물려받는 행위를 상속이라고 함

불필요한 코드 반복을 줄일 수 있음

extends 키워드를 사용하여 부모클래스(=슈퍼클래스)를 확장 상속

 

오버라이딩은 덮어 쓰는 행위를 뜻함

자식클래스가 부모클래스 함수의 동작을 새롭게 정의하는 것

 

서브타입 -> 슈퍼타입 : upcasting

슈퍼타입 -> 서브타입 : downcasting

 

 

추상 클래스

인스턴스화를 할수없는 클래스

상속을 통해 자식클래스에서 메서드를 강제로 제각각 구현하는 용도

abstract 를 사용하여 정의 (ex: abstract class Shape)

구체적인 구현은 없는 함수를 가지며 상속할 함수만 정의함

(틀만 먼저 만들어놓고 자식클래스에서 그 틀을 가져온 후 살을 붙인다고 이해함)

추상함수를 상속받은 자식클래스에서는 무조건 추상함수를 가지고 함수의 내용을 구체적으로 정의해줘야함

 

 

인터페이스

타입스크립트에서 객체의 타입을 정의하는데 사용

객체가 가져야하는 속성과 메서드를 정의하고 인터페이스를 구현한 객체는 반드시 해당 부분을 정의해야함

추상클래스와 용도 부분에서 비슷한 점이 있기 때문에 차이점을 중점으로 공부하면 좋을 것 같다.