본문 바로가기

Java

상속 (Parent-Child 관계)

package model;

public class Parent {
	public String name;
	public int age;
	public int money;
	
	public void print(){
		System.out.println(name);
		System.out.println(age);
		System.out.println(money);
	}	
		
}

package model;

public class Child extends Parent {
		public String hobby;
		
		public void printChild(){
			System.out.println(name);
			System.out.println(age);
			System.out.println(money);
			System.out.println(hobby);
		}
        
}

● 파이썬에서 상속은 (부모클래스명), 자바에서 상속은 extends 부모클래스명

package main;

import model.Child;
import model.Parent;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Parent p = new Parent();

		
		p.name = "홍길동";
		p.age = 25;
		p.money = 10000000;
		
		p.print();
		
		System.out.println();
		System.out.println();
		
		Child c = new Child();
		c.name = "영희";
		c.age = 27;
		c.money = 100000000;
		c.hobby = "건물사기";
		
		c.printChild();
	}
	

}

● 상속을 받으면 부모클래스에있는 멤버변수와 메소드를 모두 이용할 수 있다!

▷ 메모리 확보 후 생성자를 호출한다◁

1. Child c = new Child(); 코드를 실행하면 Child 클래스로 이동하고, 상속받았다면 부모 클래스인 Parent 클래스로 이동한다..

2. public class Parent {
 public String name;
 public int age;
 public int money;
}

각 변수를 넣을 메모리를 확보한다.

3. Child 클래스로 돌아와 Child 클래스의 멤버변수가 있다면 해당 변수를 넣을 메모리를 추가한다.

4. main함수로 돌아와서 밑에 코드들을 실행하여 각각의 값을 넣는다.

c.name = "영희";
c.age = 27;
c.money = 100000000;
c.hobby = "건물사기";

 

'Java' 카테고리의 다른 글

메소드 오버라이딩(Method Overriding)  (0) 2023.07.03
private와 상속  (0) 2023.07.03
생성자 Constructor  (0) 2023.07.03
메서드 오버로딩(Overloading)  (0) 2023.07.03
Static 변수  (0) 2023.07.03