본문 바로가기
Language/Java

상속(Inheritance)

by 태윤2 2020. 6. 4.
  • 상속(inheritance)

 

  • Is-a 관계 ( A is a B 가 성립되면 A는 B를 상속받아 정의했다는 의미가 됨)
  • 슈퍼클래스의 멤버(변수 및 메서드)를 서브클래스에서 물려받아 선언없이 사용하는 것
  •   =>슈퍼클래스(=부모클래스 =상위클래스) : 멤버를 물려주는 클래스
  •   =>서브클래스(=자식클래스 =하위클래스) : 멤버를 물려받는 클래스
  • => A is a B 일 때 A가 서브클래스, B가 슈퍼클래스가 된다.
  • 코드 중복 제거가 가능하며, 유지보수성이 향상됨
  • 상속을 적용하기 위해서는 서브클래스 정의 시 서브클래스명 뒤에 extends 키워드를 사용하여 슈퍼클래스의 이름을 지정해야함
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
class 할아버지 { // 접근가능한멤버수 2
    String = "이층집";
    public void singWell() {
        System.out.println("노래를 잘 한다");
    }
}
 
class 아버지 extends 할아버지 {// 접근가능한멤버수 4
    String car = "스포츠카";
    public void drawWell() {
        System.out.println("그림을 잘 그린다!");
    }
}
 
class 아들 extends 아버지 {// 접근가능한멤버수 6
    String money ="100억";
    public void saveWell() {
        System.out.println("재산을 많이 모았다");
    }
 
    public void showMyAbility() {
        // 자신의 클래스 내에서 자신의 멤버는 물론, 상속받은 부모의 멤버에도 자유롭게 접근 가능
        saveWell(); // 자신의 클래스에서 정의한 메서드
        drawWell(); // 아버지 클래스에서 정의한 메서드
        singWell(); // 할아버지 클래스에서 정의한 메서드
        
        System.out.println(money);// 자신의 클래스에서 정의한 멤버변수
        System.out.println(car); // 상속받은 멤버변수
        System.out.println(house); // 상속받은 멤버변수
 
}
cs

 

 

'Language > Java' 카테고리의 다른 글

메서드 오버라이딩 (Method Overriding) = 메서드 재정의  (0) 2020.06.05
상속에서의 생성자  (0) 2020.06.04
Singleton Design Pattern(싱글톤 디자인 패턴)  (0) 2020.06.01
static 키워드  (0) 2020.06.01
this  (0) 2020.05.28