[Study] 객체

LimJaeJun·2023년 10월 22일

Study

목록 보기
1/16

객체란 무엇인가?

속성과 메소드로 구성된 클래스의 인스턴스를 의미

객체의 4가지 요소

추상화

불필요한 세부 사항들은 제거하고 가장 본질적이고 공통적인 부분만을 추출하여 표현

캡슐화

서로 연관되어 있는 속성과 기능들을 하나의 캡슐로 만들어 외부로부터 보호

상속

기존의 클래스를 재활용하여 하나의 새로운 클래스를 파생시키는 것

다중 상속

여러개의 클래스를 상속받는 형태를 다중 상속이라고 한다.
하지만 C#과 자바에서는 다중 상속을 지원하지않는다.
그 이유는 죽음의 다이아몬드 DDD(The Deadly Diamond of Death)때문이다.

위의 구조에서 DigitalRecorder가 burn()을 호출한다면 ComboDrive의 burn함수를 오버라이드한 두 함수 CDBurner와 DVDBurner 중 어떠한 클래스의 burn함수가 호출될지 모른다. 이것을 죽음의 다이아몬드라고 한다.

다형성

어떠한 객체의 속성이나 기능이 상황에 따라 여러 가지 형태를 가질 수 있는 형태
추상클래스나 인터페이스를 주로 사용

오버로딩과 오버라이딩

오버로딩

오버로딩은 동일한 메서드 이름을 사용하면서 매개변수의 수나 유형을 다르게 하는 것을 의미

오버라이딩

오버라이딩은 부모 클래스에서 상속된 메서드를 자식 클래스에서 다시 정의하는 것을 의미


죽음의 다이아몬드 이미지 출처

profile
Dreams Come True

0개의 댓글