📝클래스 상속
먼저 상속할 클래스를 먼저 만들어줬다
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();
}
}
객체 생성 동작 방식
객체 생성할때 해당 클래스로 가서 클래스의 오른쪽을 확인
> 상속받은 클래스가 있는지 확인하여 상속 받은 클래스가 있다면 그 클래스로 이동
> 해당 클래스가 최상위 클래스인지 확인(상속 받은게 또 있다면 그 클래스로 이동한다)
> 상속한 클래스(부모 클래스)의 메모리부터 힙에 저장하고 다음으로 상속 받은 클래스(자식클래스)를 저장한다
'Java' 카테고리의 다른 글
[Java] super로 사용하는 상속 클래스 멤버변수 (0) | 2023.01.19 |
---|---|
[Java] 메소드 오버라이딩하기(Method Overriding) (0) | 2023.01.19 |
[Java] 클래스 멤버변수에 데이터 셋팅하기(객체 생성) (0) | 2023.01.19 |
[Java] getter / setter 함수 사용하기 (0) | 2023.01.19 |
[Java] this로 사용하는 멤버변수 (0) | 2023.01.19 |
댓글