본문 바로가기

Study/웹기초

객체 지향의 3가지 특징 - 캡슐화, 상속, 다형성

캡슐화(Encapsulation)

캡슐화는 일반적으로 연관된 목적을 가지고 있는 변수와 함수별로 클래스로 묶는 작업을 말합니다. 

캡슐화는 외부의 잘못된 접근으로 값이 변하는 것을 막기 위해 클래스 내의 변수나 함수를 감추거나 드러내는 은닉성을 지니고 있습니다. 

 

캡슐화의 대표적인 기능은 요구사항이 새롭게 추가되거나 바뀌어도 변경이 전파되지 않도록 막을 수 있다는 것입니다.

 

캡슐화란 외부에서 알 필요가 없는 부분을 감춤으로써 대상을 단순화하는 추상화의 한 종류입니다.

캡슐화가 중요한 이유는 불안정한 부분(구현)과 안정적인 부분(퍼블릭 인터페이스)을 분리하여 변경의 영향을 통제할 수 있기 때문입니다.

캡슐화를 통해 변경 가능성이 높은 부분을 객체 내부로 추상화하면 변경을 최소화할 수 있습니다.

 

 

 

 

상속(Inheritance)

 자식 클래스에서 부모 클래스로부터 부모의 모든 자원을 물려 받는 것을 의미합니다.

하나의 부모 클래스가 여러 자식 클래스를 가지는 것은 가능하지만 하나의 자식 클래스가 여러 부모 클래스를 상속받을 수는 없습니다. 

상속을 통해서 비효율적인 코드 중복을 피할 수 있으며, 유지 보수의 편리성도 얻을 수 있습니다.

 

 

 

 

다형성(Polymorphism)

 다형성은 말 그대로 여러 형태를 가질 수 있는 능력으로 하나의 객체가 여러 가지 타입을 가질 수 있는것을 의미합니다. 
 즉, 부모 클래스 타입의 참조변수로 자손 클래스의 인스턴스를 참조할 수 있도록 해줍니다.

 

 각각의 자손 클래스의 특징을 가진 인스턴스들이 동일한 데이터 타입을 가지게 되면 메소드를 실행시키기 간편해집니다. 

 

 자식 클래스에서는 부모로부터 상속받은 메서드를 그대로 사용해도 되지만,
 오버라이딩(Overriding)을 통해 수정하여 사용할 수 있습니다.
 

 

 

 

 

 

 

참조

https://gongbu-ing.tistory.com/52

'Study > 웹기초' 카테고리의 다른 글

macOS 터미널에서 내 IP 주소 확인하기  (0) 2022.11.11
응집도 vs 결합도  (0) 2022.10.05
SOLID  (0) 2022.10.05
캡슐화(encapsulation)  (0) 2022.09.22
관심사의 분리(SoC)  (0) 2022.09.22