상속 (Inheritance):
- 상위 클래스를 확장해서 하위 클래스를 설계하는 것.
- 상속을 하게 되면 상위 클래스의 모든 멤버(필드, 생성자, 메서드)들을 하위 클래스에서 사용할 수 있음.
추상화 (Abstraction):
- 추상화는 복잡한 시스템을 단순화시켜 필요한 부분만 보여주는 것을 의미.
- 클래스에서 중요부분을 강조하고 세부사항을 숨겨 사용자에게 필요한 부분만 제공.
다형성 (Polymorphism):
- 다형성은 같은 인터페이스나 메서드를 사용하지만, 다양한 방식으로 구현할 수 있는 능력을 의미.
- 객체가 동일한 메서드를 호출할 때 각각 다른 동작을 할 수 있도록 함.
- 다형성은 오버로딩(Overloading)과 오버라이딩(Overriding)을 포함.
캡슐화 (Encapsulation):
- 캡슐화는 데이터와 해당 데이터를 다루는 메서드를 하나로 묶어서 외부에서의 접근을 제한하는 것.
- 객체의 내부 데이터와 동작을 보호하여 잘못된 접근이나 변경을 방지.
- 캡슐화는 객체의 상태를 보호하고 유지 보수를 용이하게 함.