본문 바로가기

Java/기본

[Java] 객체지향 - 객체지향의 특징

객체 지향의 4가지 특징

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



캡슐화(Encapsulation)

객체의 필드를, 메소드를 하나로 묶고 실제 구현 내용을 감추는 것
외부에 내부구조를 숨기고 기능에 필요한 필드, 메소드만 밖으로 공개한다
캡슐화된 정보는 수정뿐 아니라 접근 자체가 제한된다

적용 : 


상속(Inheritance)

상위객체가 갖는 특성을 하위객체에 물려주어 필드나 메소드를 사용할 수 있도록 하는것
상위객체가 상속해줄 수 있는 개수에는 제한이 없다.
또한 공통적인 부분을 잘 구성한 객체의 경우 이를 상속받은 하위객체에서 설계하는데 도움을 준다

적용 : 상위클래스와 하위클래스


추상화(Abstraction)

공통되고 중요한 특성을 추출하여 상위개념으로 생성하는 것이다.

 


다형성(Polymorphism)

같은 타입이지만 실행결과가 다양한 객체를 이용할 수 있는 성질
하나의 타입에 여러 객체를 대입하는 것이 가능하도록 하여 다양한 기능을 이용할 수 있도록 하는 특성이다.


부모 클래스 또는 인터페이스의 타입 변환을 허용함

부모 클래스 -> 모든 자식 클래스가 대입될 수 있음
인터페이스 타입 -> 모든 구현 클래스가 대입될 수 있음