반응형

이전에 배운 클래스는 변수와 메소드 등을 내부에 구현할 수 있는데요.

Java의 상속의 개념은 말 그대로 대상이 가진 어떠한 요소를 그대로 물려받는 것을 의미합니다.

 

따라서 해당 클래스에서 상속받는다는 것은 해당 클래스가 가지는 변수나 메소드 등을

그대로 상속받아 사용이 가능한 형태가 됨을 의미합니다.

 

상속 사용법

[나의 클래스] extends [나에게 상속해 주는 클래스]

일반적으로 위와 같이 구성하면 나의 클래스는 타 클래스의 자원을 쓸 수 있습니다.

 

상속의 특징

  1. 클래스와 클래스 간의 사용하는 기능으로 extends로 정의하면 사용 가능.
  2. 상속을 통해 해당 클래스가 가지는 요소를 제공받을 수 있음.
  3. 상속을 해주는 클래스의 구성요소나 값이 변하면 받는 쪽도 당연히 변경됨.
  4. 상속 대상은 클래스 내에 구성된 멤버 변수, 메소드
  5. 타 클래스의 자원을 가져다 쓰므로 다시 정의할 필요가 없어 소스코드의 간결화와
    재사용성이 뛰어나며, 생산성과 유지보수에 뛰어남.
  6. 상속받는 요소의 이름이 이미 나의 클래스에 구성되어 있으면 상속받지 않음.

 

예제 소스

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();
		
		
	}
}

소스 설명

  1. extendsExm 클래스에서 bank 클래스를 인스턴스화 합니다.
  2. bank 클래스는 나의 자산, 나의 빚 조회 기능이 있습니다.
  3. 그러나 조회 기능만 있을 뿐 금액에 대한 부분은 존재하지 않습니다.
  4. 하지만 extends를 통해 account 클래스를 상속받고 있습니다.
  5. account 클래스에는 잔액과 빚에 대한 데이터와 이를 출력하는 기능을 가지고 있습니다.
  6. bank 클래스는 account에 대한 자원을 상속받아 이를 조회 기능에 할당하여
    조회 기능을 정상적으로 수행할 수 있습니다.
반응형

+ Recent posts