- 추상화(Abstraction)
- 캡슐화(Encapsulation)
- 상속(Inheritance)
- 다형성(Polymorphism)
추상화 | - 객체에서 공통된 속성과 행위 추출 - 자바에서는 추상 클래스와 인터페이스로 구현 가능 |
---|---|
캡슐화 | - 서로 연관된 속성과 기능들을 하나의 캡슐로 생성 - 데이터 보호와 은닉이 가능 - 자바에서는 public, protected, private, default 4가지 접근자로 구현 가능 |
상속 | - 자바의 기본 단위인 클래스가 다른 클래스의 속성과 기능을 이어받아 사용 - 중복 기능에 대한 반복작업이 필요가 없음 - 자바에서는 클래서 생성시 extends를 통해 구현 가능 |
다형성 | - 하나의 객체가 여러 가지 형태를 가지는 것을 의미 - 클래스 간 의존성을 줄여 확장성은 높아지고 결합도가 낮아짐 |
오버라이딩 | 오버로딩 |
---|---|
- 클래스끼리 상속 관계여야 구현 가능 | - 같은 이름의 메서드가 다른 매개변수를 통해 다른 역할을 수행 |
- 오버라이딩은 클래스의 관계 | - 오버로딩은 메서드의 관계 |