1. 객체지향 프로그래밍?
객체 중심의 프로그래밍으로 상속, 캡슐화, 추상화, 다형성이라는 네가지 특성이 있습니다.
상속은 기존 클래스를 기반으로 새로운 클래스를 정의하는 것
캡슐화는 객체 내부에 직접 접근하지 않고 공개된 인터페이스를 통해서만 객체에 접근해 조작하도록 하는 것
추상화는 객체의 공통적인 특성을 추출하는 것으로, 변수 또는 메서드를 하나로 묶어 단순화하는 것
다형성은 동일한 인터페이스에 대해 다른 기능을 제공하는 것을 의미합니다.
2. 상속이란?
기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것.
- 코드의 재사용성을 높인다
- 코드의 중복을 제거하여 생산성과 유지보수에 크게 기여한다.
class Child extends Parent {
// ..
}
자식 클래스는 부모 클래스의 모든 멤버를 상속 받으므로 항상 부모 클래스보다 같거나 많은 멤버를 가진다.
3. 오버라이딩이란?
부모 클래스로부터 상속받은 메서드의 내용을 변경하는 것
<조건>
- 이름이 같아야 한다.
- 매개변수가 같아야한다.
- 반환 타입이 같아야 한다.
오버로딩 vs 오버라이딩
오버로딩은 기존에 없는 새로운 메소드를 정의하는것
오버라이딩은 상속받은 메서드의 내용을 변경하는 것