본문 바로가기
Java

[Java] 클래스 상속

by coding_su 2023. 1. 19.

📝클래스 상속

먼저 상속할 클래스를 먼저 만들어줬다

public class Parent {
	String name;
	int age;
	private int money;

	public int getMoney() {
		return money;
	}
    
	public void setMoney(int money) {
		this.money = money;
	}

	void printMoney() {
		System.out.println("name : " + name);
		System.out.println("age : " + age);
		System.out.println("money : " + money);
	}
}

 

상속을 받을 클래스를 만들때는 상속 받을때 사용하는 키워드 extends를 입력하고 클래스명을 입력해준다

아래 클래스인 Child 클래스는 Parent 클래스의 멤버변수와 메소드를 상속 받는다는 뜻이다

※ 우리 눈에는 안보이지만 상속 받은 코드가 숨어있다

 상속은 하나의 클래스만 입력할 수 있다 = extends 옆에 하나의 클래스만 입력할 수 있다

public class Child extends Parent {
	// 상속 받을때 사용하는 키워드는 extends
	// extends 오른쪽에 상속받을 클래스명을 입력해준다
	
	String hobby;
}

 

아래 코드처럼 상속을 받은 클래스는 상속한 클래스의 멤버변수와 메소드를 사용할 수 있다

※ 상속받을때 프라이빗(private)으로 받은 멤버변수는 직접 억세스가 안된다( = 부모클래스의 private 멤버변수 억세스 제한)

public class PersonMain {
	public static void main(String[] args) {
		
		// Parent 클래스 객체 생성
		Parent p = new Parent();
        
		// 데이터 저장
		p.name = "홍길동";
		p.age = 50;
		p.setMoney(1000000000);
        
		// 저장된 데이터 출력
		p.print();
		
		// Child 클래스 객체 생성
		Child c = new Child();
		
		// 데이터 저장
		c.name = "홍나나";
		c.age = 23;
		c.setMoney(5000000);
		c.hobby = "게임";
		
		// 저장된 데이터 확인(출력)
		c.print();
	}
}
객체 생성 동작 방식
객체 생성할때 해당 클래스로 가서 클래스의 오른쪽을 확인
> 상속받은 클래스가 있는지 확인하여 상속 받은 클래스가 있다면 그 클래스로 이동
> 해당 클래스가 최상위 클래스인지 확인(상속 받은게 또 있다면 그 클래스로 이동한다)
> 상속한 클래스(부모 클래스)의 메모리부터 힙에 저장하고 다음으로 상속 받은 클래스(자식클래스)를 저장한다

댓글