[Java] 객체 지향 언어의 특성
2021. 11. 18. 17:11ㆍLanguage`/Java
1. 캡슐화 (Encapsulation)
- 객체를 캡슐로 싸서 내부를 보호하고 볼 수 없게 하는 것 (가장 본질적 특성)
- 외부의 접근으로부터 안전
클래스 (Class)
- 클래스(class) : 객체 모양을 선언한 틀 (캡슐화)
- 필드 (멤버 변수)
- 메소드 (멤버 함수)
- 클래스 (필드, 메소드)로 구성
객체 (Object)
- 클래스의 모양대로 생성된 실체
- 객체 내 데이터에 대한 보호, 외부 접근 제한
2. 상속 (Inheritance)
- 자식 클래스가 부모 클래스의 속성을 물려받고 기능을 추가하여 확장(extends)
- 자식 클래스 = 서브 클래스(Sub Class) / 부모 클래스 = 슈퍼 클래스(Super Class)
- 서브 클래스 객체 = 슈퍼 클래스 멤버 + 서브 클래스 멤버
3. 다형성 (Polymorphism)
- 같은 이름의 메소드가 클래스/객체에 따라 다르게 동작하도록 구현
메소드 오버라이딩(Overriding)
- 슈퍼 클래스의 메소드를 각각의 서브 클래스마다 다시 구현
메소드 오버로딩(Overloading)
- 클래스 내에서 이름이 같지만 서로 다르게 동작하는 메소드를 여러 개 생성