
오버로딩에 이어 Person이라는 클래스를 정의하였다.
- 구성 변수 2개 (이름 / String, 체중 / name)
- 메서드 2개(eat : 먹는 행위를 정의, sleep : 자는 행위를 정의)

1. 상속의 정의 : 어떤 클래스 A가 가진 것을 B에게 물려주는 것
상속을 받은 B 클래스는 A클래스의 모든 데이터 필드와 메서드를 가지고 있다.
- 상속해 주는 클래스 : super class / 상속 받는 클래스 : sub class
- sub class는 여러개 만들 수 있지만 super class는 하나다.
* 자식은 한 부모로부터만 유전자를 물려받을 수 있듯이
2. 상속 방법 : extends를 활용한 상속
위에서 정의한 Person 클래스를 슈퍼 클래스로 상속받는 Student, Workman 클래스를 정의하였다.
- Student : 구성변수 1개(stuno / int), + 구성 메서드 1개(study()) + 메서드 오버라이드 1개
- Workman : + 구성변수 1개(workno / int), + 메소드 오버라이드 1개
Student와 Workman 클래스는 Person이 가지고 있는 변수 name, weight와 메서드 eat, sleep을 가지고 있다.

3. 오버라이딩 : 슈퍼 클래스의 메소드를 서브 클래스에서 재정의 하는 것
* 오버라이딩 시 서브 클래스에서 재정의된 메서드가 슈퍼 클래스의 메서드보다 우선한다.
* @Override 표시 하단 메소드 참고
ex) Person 클래스의 eat 메서드를 Student 클래스에서 동일한 eat 메서드명으로 재정의
ex) Person 클래스의 sleep 메소드를 Workman 클래스에서 동일한 sleep 메서드 명으로 재정의
메소드 오버라이딩을 통해 서브 클래스는 슈퍼 클래스의 메서드를 본인 클래스에 맞게 재정의를 할 수 있을 뿐만 아니라,
동일한 성격의 메소드가 클래스 상속에 따라 어느 방식으로 파생되었는지 가시성 있는 코드 빌드 및 추적이 가능하다.
4. main 작성

[결과값]
Name / Weight : Kim / 58 Kim sleeps / - 1 weight Name / Weight : Kim / 57 Name / Weight : Lee / 73 Lee eats / + 1 weight student eats more! / + 1 weight Lee studies hard / - 1 weight Name / Weight : Lee / 74 Name / Weight : Park / 92 Park sleeps / - 1 weight workman is extremely tired.. / -1 weight Name / Weight : Park / 90 |
같이 보면 좋은 포스팅
[java] java 다형성, 슈퍼/서브(부모/자식) 클래스 형변환
다형성(Polymorphism)Java에서 제공하는 기능으로 슈퍼(부모) 클래스를 상속받은 서브 클래스의 객체가 슈퍼 클래스의 객체로도 사용되고 서브 클래스의 객체로도 사용되는 등 다양한 형태를 취할
doinitright.tistory.com
[java] 접근 제어자의 이해와 구현 예제(Access Modifier)
접근 제어자의 이해접근 제어자란?선언한 클래스와 클래스의 멤버(변수와 메서드 등)에 대해 외부에서 접근할 수 있는 범위를 제어하는 키워드입니다.객체 지향에서의 정보 은닉을 목적으로 각
doinitright.tistory.com
'DEV > Java' 카테고리의 다른 글
[java] java 접근 제어자 final, static, private (0) | 2023.07.27 |
---|---|
[java] 접근 제어자의 이해와 구현 예제(Access Modifier) (0) | 2023.07.26 |
[java] java 다형성, 슈퍼/서브(부모/자식) 클래스 형변환 (0) | 2023.07.26 |
[java] java 클래스 정의, 객체의 생성 및 생성자 활용 (0) | 2023.07.24 |
IntelliJ 단축키 모음(윈도우) (0) | 2023.07.20 |