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

메서드의 이름은 동일하되, 

메서드의 매개변수의 순서나 개수를 달리하여 메서드 이름을 절약할 수 있다.

* 있는 거 이름만 똑같이 해서 새롭게 사용 


참고) JAVA1_day17 | 추가공부



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() 메소드를 오버라이딩 하여 재정의한다.