본문 바로가기
개발 노트/기초 지식

[java] 상속 extends

by tokkiC 2022. 4. 25.

상속 extends

부모의 무언가를 자식에게 줄때 상속(Inheritance)라는 말을 쓴다
프로그래밍에서는 상속을 확장(extends) 이라고도 표현하고 extends 를 사용하여 상속기능을 한다

클래스 a 의 메소드와 변수를 다른 클래스가 갖도록(=사용가능 하도록) 하는 것.
재사용성,유지보수 편의성, 가독성, 코드량 함축의 장점이 있다

스타크래프트로 설명해보자

유닛 클래스 아래에 종족별 유닛 클래스가, 각 종족별 유닛 클래스 아래에 특정 유닛 클래스가 존재한다

"Unit.java"
public class Unit {
    int hitPoint;
    int speed;
    int range;
    int damage;
}

"TerranUnit.java"
public class TerranUnit extends Unit {      //  테란 유닛도 unit 의 성질을 가지고 있어야 하므로 unit 클래스를 상속하였다
    boolean isHealable; //  메딕이 치료 가능 여부

}

"Marine.java"
public class Marine extends TerranUnit {     //  마린 유닛도 unit 의 성질을 가지고 있어야 하므로 unit 클래스를 상속하였다
    ...
}

"Medic.java"
public class Marine extends TerranUnit {
    ...
}

"ProtossUnit.java"
public class ProtossUnit extends Unit {  
    int shields; //  실드는 프로토스만의 고유한 특징이라서 protoss 클래스에만 작성
}

"Zealot.java"
public class Archon extends ProtossUnit {
    ...
}

"Archon.java"
public class Archon extends ProtossUnit {
    ...
}

유닛 클래스를 상속하는 것으로 자식관계인 모든 유닛들은 유닛 클래스의 속성과 메소드를 사용 가능하다

굳이 부모 클래스의 속성과 메소드를 하나하나 적을 필요가 없이 부모 클래스와 링크됐다고 보면 된다

'개발 노트 > 기초 지식' 카테고리의 다른 글

[java] overload, override  (0) 2022.04.25
[java] this 와 super  (0) 2022.04.25
[java] 접근제어자  (0) 2022.04.22
[java] static 의 이해  (0) 2022.04.21
[java] 데이터 타입의 형변환, 음수의 표현  (0) 2022.04.18

댓글