1. 상속 (Inheritance)
1) 재사용성
- 메서드의 재사용
- 클래스의 객채 생성 재사용
- 상속을 통한 클래스의 재사용
* 부모와 자식은 1:1 관계이고, 형제자매끼리는 연관이 없다.
2) 구조
# extends 키워드 사용
class A { // 부모
}
class B extends A { // 자손
}
3) 상위 클래스: super, parent class
하위 클래스: sub, child class
4) 자바는 '단일 상속' 을 지원한다.
* 부모가 여러 명인 다중 상속을 제한
5) 메서드 오버라이딩 (Overriding) - modify
(1) 정의
'상속 관계' 에서 부모로부터 물려받은 메서드를
자손 클래스에서 자신의 속성에 맞게 '재정의' 하는 것을 의미한다.
* 있는 거 수정해서 사용
cf) 메서드 오버로딩(Overloading) - new
메서드의 이름은 동일하되,
메서드의 매개변수의 순서나 개수를 달리하여 메서드 이름을 절약할 수 있다.
* 있는 거 이름만 똑같이 해서 새롭게 사용
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | package inheritanceex; class Person { String name; int age; void love() { System.out.println("사랑"); } } class Student extends Person { // 메서드 오버 라이딩 (Overriding) void love() { System.out.println("우정"); } } class Employee extends Person { @Override void love() { System.out.println("동료애"); } } public class InheritTest01 { public static void main(String[] args) { Student stu = new Student(); stu.love(); } } | cs |
# 설명
Line 3~10: Person 클래스는 Student와 Employee 클래스의 부모 클래스가 되며 공통 변수와 메서드를 정의한다.
Line 12: Person 클래스를 상속받는다.
Line 14~16: Person 클래스에 있는 love() 메소드를 오버라이딩 하여 재정의한다.
'JAVA > JAVA2' 카테고리의 다른 글
JAVA2_day02 | 동적 로딩, 정적 로딩, static 키워드 (0) | 2018.01.11 |
---|---|
JAVA2_day02 | 참조변수 this, super (0) | 2018.01.11 |
JAVA2_day01 | 추가공부 (상속) (0) | 2018.01.10 |
JAVA2_day01 | 추가공부 (객체지향 설계) (0) | 2018.01.10 |
JAVA2_day01 | 접근 지정자 (Access modifier) (0) | 2018.01.10 |