1. 상속

상속이란?

<aside> 💡 상속이란, 상위를 그대로 하위가 물려받아 추가 및 재정의하는 것이다.

</aside>

상속이 필요한 이유

  1. 중복되는 코드를 줄일 수 있다. → 재작성 필요X
  2. 중복내용을 한번 정의하면, 상속의 형태로 재사용이 가능 → 클래스의 재사용성과 유지 보수성 향상
  3. 클래스 간의 계층 관계를 명료하게 표현 → 가독성 향상 및 다형성 구현 가능

extends

extends 키워드로 부모클래스를 상속받아서 구현한다.

class Programmer extends Person {
	public boolean isTired = true;
	public String[] availableLang = {"c", "Java"};
	
	public void doProgramming() {
		
	}
}

확장된다는 개념으로 다이어그램으로 표현한다면 다음과 같이 보일 수 있다.

Untitled

Method Overriding

메서드 오버라이딩의 조건

  1. 메서드 시그니처가 부모 클래스와 동일
  2. 메서드의 접근 제어자는 부모보다 같거나 더 넓은 범위
  3. 메서드의 반환 자료형은 부모보다 같거나 하위 자료형

메서드 오버라이딩 vs 메서드 오버로딩

오버로딩은 한 클래스 내에서 이름이 동일하고 메서드 시그니처가 다른 여러 개의 메서드를 정의하는 것.

오버로딩은 자식 클래스에서 부모 클래스의 메서드를 동일한 메서드 시그니처로 재정의하는 것.