반응형
이전에 배운 클래스는 변수와 메소드 등을 내부에 구현할 수 있는데요.
Java의 상속의 개념은 말 그대로 대상이 가진 어떠한 요소를 그대로 물려받는 것을 의미합니다.
따라서 해당 클래스에서 상속받는다는 것은 해당 클래스가 가지는 변수나 메소드 등을
그대로 상속받아 사용이 가능한 형태가 됨을 의미합니다.
상속 사용법
[나의 클래스] extends [나에게 상속해 주는 클래스]
일반적으로 위와 같이 구성하면 나의 클래스는 타 클래스의 자원을 쓸 수 있습니다.
상속의 특징
- 클래스와 클래스 간의 사용하는 기능으로 extends로 정의하면 사용 가능.
- 상속을 통해 해당 클래스가 가지는 요소를 제공받을 수 있음.
- 상속을 해주는 클래스의 구성요소나 값이 변하면 받는 쪽도 당연히 변경됨.
- 상속 대상은 클래스 내에 구성된 멤버 변수, 메소드
- 타 클래스의 자원을 가져다 쓰므로 다시 정의할 필요가 없어 소스코드의 간결화와
재사용성이 뛰어나며, 생산성과 유지보수에 뛰어남. - 상속받는 요소의 이름이 이미 나의 클래스에 구성되어 있으면 상속받지 않음.
예제 소스
public class account {
int money = 10000;
int debt = 2000;
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
public int getDebt() {
return debt;
}
public void setDebt(int debt) {
this.debt = debt;
}
}
import java.io.IOException;
import pkgtest.account;
class bank extends account {
void cal_my_account(){
System.out.println("나의 잔액: "+this.getMoney());
}
void cal_my_debt(){
System.out.println("나의 빚: "+this.getDebt());
}
}
public class extendsExm extends account{
public static void main(String[] args) throws IOException {
bank bk = new bank();
bk.cal_my_account();
bk.cal_my_debt();
}
}
소스 설명
- extendsExm 클래스에서 bank 클래스를 인스턴스화 합니다.
- bank 클래스는 나의 자산, 나의 빚 조회 기능이 있습니다.
- 그러나 조회 기능만 있을 뿐 금액에 대한 부분은 존재하지 않습니다.
- 하지만 extends를 통해 account 클래스를 상속받고 있습니다.
- account 클래스에는 잔액과 빚에 대한 데이터와 이를 출력하는 기능을 가지고 있습니다.
- bank 클래스는 account에 대한 자원을 상속받아 이를 조회 기능에 할당하여
조회 기능을 정상적으로 수행할 수 있습니다.
반응형
'Dev > Java' 카테고리의 다른 글
[Java] 생성자 사용법 [초기화 및 오버로딩] (0) | 2022.11.16 |
---|---|
[Java] 메소드 오버로딩 정의와 예제 소스 (0) | 2022.11.15 |
[Java] 지그재그 수열 출력 알고리즘 예제 (1) | 2022.11.07 |
[Java] 접근제어자 정의 및 사용법 (Access Modifier) (0) | 2022.11.07 |
[Java] 클래스와 메소드 생성, 호출 사용법 (0) | 2022.11.04 |