무기/자바

<Java> 상속(Inheritance)

디벅잉 2021. 3. 20. 20:11
728x90

📌 import "코드잇";

📌 import "Do it! 자바 프로그래밍 입문(박은종)";

 

/**

 * 21/03/20 작성

 * 21/11/25 1차 수정

 */

 

이게 뭐죠?

* 상위클래스의 변수, 메서드를 하위클래스에서 상속하여 활용할 수 있다.

 

왜 사용하나요?

* 하위클래스 사이에 공통분모를 상위클래스로 정의하기 위해 사용한다.

* "IS-A 관계(is a relationship; inheritance)"가 성립하는 클래스 간에 반복적인 코드를 줄일 수 있다.

 

어떻게 사용하나요?

하위클래스: 상속 받는 클래스

* extends 키워드를 통해 상위클래스를 상속

class MovieTheater extends Building { }

* @Override 어노테이션으로 상위클래스의 메서드를 오버라이딩

@Override
public int usersCount(int contentsNum) { }

상위클래스: 상속해주는 클래스

* protected 예약어로 외부 클래스에서는 사용할 수 없고 하위 클래스에서만 사용할 수 있는 변수 또는 메서드 정의

protected int usersCount(int contentsNum) { }

업캐스팅(upcasting)

* 하위클래스형의 인스턴스를 상위클래스형으로 형변환

* 자바의 메서드는 가상메서드이기 때문에 상위클래스의 메서드를 오버라이딩한 메서드를 사용할 수 있음

 

728x90

'무기 > 자바' 카테고리의 다른 글

<Java> 추상 클래스 (abstract class)  (0) 2021.03.23
<Java> 인터페이스(Interface)  (0) 2021.03.23
<Java> 제네릭 (Generic)  (0) 2021.03.22
<Java> Object Class  (0) 2021.03.20
<Java> super  (0) 2021.03.20