1. 상속할 클래스 생생
package entity;
public class Parent {
String name;
int age;
int money;
public Parent() {
}
public void print() {
System.out.println("이름 : " + this.name);
System.out.println("나이 : " + this.age);
System.out.println("자산 : " + this.money);
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return this.age;
}
public void setAge(int age) {
this.age = age;
}
public int getMoney() {
return this.money;
}
public void setMoney(int money) {
this.money = money;
}
}
2. 상속 받을 클래스를 만들때는 클래스명 뒤 extends 를 입력하고 부모 클래스명을 입력해준다.
하단 클래스인 Child 클래스는 Parent 클래스의 멤버변수와 메소드를 상속 받는다는 뜻이다.
우리 눈에는 안보이지만 상속받은 코드가 숨어있다.
상속은 하나의 클래스만 입력할 수 있다. = extends 옆에 하나의 클래스만 입력할 수 있다.
package entity;
public class Child extends Parent {
String hobby;
public Child() {
}
public String getHobby() {
return this.hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
public void print() {
super.print();
System.out.println("취미는: " + this.hobby);
}
}
아래 코드처럼 상속을 받은 클래스는 상속한 클래스의 멤버변수와 메소드를 사용할 수 있다.
상속받을때 프라이빗(private)으로 받은 멤버변수는 직접 억세스가 안된다( = 부모클래스의 private 멤버변수 억세스 제한)
import entity.Child;
import entity.Parent;
public class Extend {
public Extend() {
}
public static void main(String[] args) {
Parent p1 = new Parent();
p1.setName("홍길동");
p1.setAge(50);
p1.setMoney(1000000000);
p1.print();
Child c1 = new Child();
c1.setName("김나나");
c1.setAge(24);
c1.setMoney(100000);
c1.setHobby("게임");
c1.print();
}
}
객체 생성 동작 방식
객체 생성할때 해당 클래스로 가서 클래스의 오른쪽 확인
1. 상속받은 클래스가 있는지 확인 -> 2. 상속받은 클래스가 있다면 그 클래스로 이동 -> 3. 해당 클래스가 최상위 클래스인지 확인(상속 받은 클래스가 또 있다면 그 클래스로 이동) -> 4. 상속한 클래스(부모 클래스)의 메모리 부터 힙에 저장 -> 5. 상속받은 클래스(자식 클래스)를 저장.
'JAVA' 카테고리의 다른 글
13. Java 해쉬맵(HashMap) 사용하기 (0) | 2024.12.17 |
---|---|
12. Java 어레이 리스트(ArrayList) 사용하기 (0) | 2024.12.17 |
10. Java this로 사용하는 멤버변수 (0) | 2024.12.15 |
6. Java 메소드 오버로딩하기(Method Overloading) (0) | 2024.12.11 |
5. Java 함수(메소드) 정의해서 사용하기 (1) | 2024.12.09 |