📚 참고
자바의 정석 기초편 (객체지향개념만)

 

 

 

 

 

 

 

 

 

 

상속

 

  • 기존 클래스로 새로운 클래스를 작성하는 것 (코드의 재사용)
  • 두 클래스를 부모 - 자식 관계로 맺어주는 것

 

class 자식클래스 extends 부모클래스 {
    // ...
}

 

 

 

 

 

  • 자손은 조상(부모의 부모를 포함할 수 있어 조상이라고 표현)의 모든 멤버를 상속 받는다.
    • ※ 생성자, 초기화 블럭 제외
  • 자손의 멤버(iv, im) 개수는 조상보다 적을 수 없다. (같거나 많음)

 

class Parent {
    int age;
}


class Child extends Parent {  }

 

  • Parent class 멤버 개수 : 1개
  • Child class 멤버 개수 : 0개 (자신이 가지고 있는 멤버) + 1개 (상속 받은 멤버) = 총 1개

 

 

 

 

 

  • 자손의 변경은 조상에 영향을 미치지 않는다.
  • Parent class를 이용해서 Child 클래스를 extends 하겠다.

 

class Parent {
    int age;
}

class Child extends Parent {
    void play() {
    	System.out.println("놀자");
    }
}

 

  • Parent class 멤버 개수 : 1개 (age)
  • Child class 멤버 개수 : 2개 (age, play)

 

 

 

 

 

 

 

비교

 

// 2차원 좌표의 한 점
class Point {
    int x;
    int y;
}

 

 

 

 

 

// Point 클래스와 관계없는 클래스
class Point3D {
    int x;
    int y;
    int z;
}

 

  • Point3D 클래스는 Point 클래스에 영향을 받지 않는다.

 

 

 

 

 

// Point 클래스와 상속관계
class Point3D extends Point {
    int z;
}

 

  • Point3D 클래스는 Point 클래스에 영향을 받는다.
  • 예를 들어, Point3D 멤버의 갯수는 3개인데 Point의 y 변수가 사라지면 Point3D 클래스도 영향을 받아 멤버 갯수가 2개로 줄어든다.

 

 

 

 

 

 

 

 

 

 

'JAVA > 객체지향개념' 카테고리의 다른 글

단일 상속 (Single Inheritance), Object 클래스  (0) 2021.03.16
클래스 간의 관계 (상속, 포함)  (0) 2021.03.15
변수 초기화  (0) 2021.03.13
생성자 this(), 참조변수 this  (0) 2021.03.13
생성자 (Constructor)  (0) 2021.03.11