객체지향 언어 특징 (캡슐화, 상속, 추상화, 다형성)

2023. 3. 29. 00:00JAVA/Language

목차

  • OOP 특징
    • 캡슐화(Encapsulation)
    • 상속(Inheritance)
    • 추상화(Abstraction)
    • 다형성(Polymorphism)

OOP(Object-Oriented-Programming) 특징

  • 캡슐화(Encapsulation)
  • 상속(Inheritance)
  • 추상화(Abstraction)
  • 다형성(Polymorphism)

캡슐화(Encapsulation)

캡슐화는 외부의 접근으로부터 클래스의 자세한 정보인 필드 멤버와 메소드를 숨기는 방법입니다. 그리고 캡슐화가 적용된 클래스는 오직 public 인터페이스를 통하여 인터페이스의 메소드(메시지)를 노출합니다.

 

상속(Inheritance)

상속은 한 클래스가 또 다른 클래스의 필드 멤버와 메소드 기능들을 사용할 수 있도록 하는 것입니다. 자바에서 상속은 이미 존재하는 클래스들을 기반으로 새로운 클래스를 생성하는 것을 의미합니다. 상속받은 클래스는 필드 멤버와 메소드를 재사용할 수 있거나 새로운 필드멤버와 메소드를 상속받은 클래스에서 정의하여 확장할 수 있습니다.

 

추상화(Abstraction)

객체간의 공통적인 속성이나 행동들을 묶어서 이름을 붙이는 것을 추상화라고 할 수 있습니다. 예를 들어 물고기, 사자, 토끼, 뱀이라는 객체가 존재할때 이 객체들을 하나로 묶을때 동물또는 생물이라는 추상적인 객체로 정의할 수 있습니다. 이때 동물 또는 생물이라고 정의하는 것을 추상화라고 할 수 있습니다.

 

다형성(Polymorphism)

다형성은 각각의 객체에게 동일한 요청을 할때 각각의 객체들이 자기만의 방법으로 같은 결과로 응답하는 것을 말합니다. 예를 들어서 바리스타라는 인터페이스가 존재할때 이 바리스타 인터페이스를 구현하는 두 객체가 존재한다고 가정합니다. 이때 외부에서 바리스타 인터페이스를 구현한 두 객체에게 커피를 만들어 달라고 요청할 수 있습니다. 이때 한 객체는 에스프레소 머신을 이용하여 커피를 만들어서 응답할 수 있습니다. 그리고 또 다른 한 객체는 커피포트를 이용하여 커피를 만들어서 응답할 수 있습니다. 즉, 다형성은 인터페이스 또는 클래스에서 정의된 메소드를 구현 클래스(또는 자식 클래스)에서 재정의(오버라이딩)되어 사용하는 것을 의미합니다.

 

 

References

https://www.geeksforgeeks.org/encapsulation-in-java/
https://www.geeksforgeeks.org/inheritance-in-java/
https://88240.tistory.com/228
https://www.nextree.co.kr/p6960/