딱콩이의 봄

상속 관계의 초기화 과정 본문

개발/JAVA

상속 관계의 초기화 과정

코린이딱콩 2022. 8. 30. 00:48

💡생성자 호출

✔️상속 관계에서 자식 클래스를 인스턴스화 하면 부모 클래스의 객체도 인스턴스 화가 진행됩니다.

✔️자식 클래스의 객체가 인스턴스화 되기 위해서는 먼저 부모 클래스의 객체가 인스턴스화 되어야 합니다.

   따라서, 상속 구조에서 가장 상위의 부모 클래스부터 차례로 인스턴스화가 진행됩니다.

 

💡Art 클래스

public class Art {
	public Art() {
    	System.out.println("Art Constructor");
      }
    }

💡💡Art 클래스를 상속 받은 Drawing 클래스

public class Drawing extends Art {
	public Drawing() {
    	System.out.println("Drawing Constructor");
      }
    }

💡💡💡Drawing 클래스를 상속받은 Cartoon 클래스

public class Cartoon extends Drawing {
	public Cartoon() {
    	System.out.println("Cartoon Constructor");
      }
  }

💡💡💡💡실행 결과

public class InheritanceAssist {
	public static void main(String[] args) {
    	Cartoon cartoon = new Cartoon();
        }
      }
      //실행 결과
      Art Constructor
      Drawing Constructor
      Cartoon Constructor

super()

✔️super() 생성자는 자식 클래스에서 명시적으로 부모 클래스의 생성자를 호출할 수 있도록 하는 방법입니다.

✔️상속 관계에서 부모 클래스의 생성자 호출을 외부에서 명시적으로 지정할 수 없습니다.

✔️자바는 자식 클래스의 객체가 인스턴스화 될 때 기본적으로 부모 클래스의 디폴트 생성자를 호출합니다.

✔️부모 클래스에 디폴트 생성자가 정의되어 있지 않으면 자식클래스는 명시적으로 부모 클래스의 생성자를 호출해야 합니다.

public class Employee {
	private String name;
    
    public Employee(String name) {
    
    	this.name = name;
     }
   }
public class Developer extends Employee {
	private double salary;
    
    public Developer(String name) {
    	super(name);
    }
    
    public void setSalary(double salary){
    	this.salary = salary;
    }
    
    public double getSalary() {
    	return salary;
      }
    }

 

 

🧐Reference

https://youtu.be/yOmXcaUaD7U

'개발 > JAVA' 카테고리의 다른 글

객체간 타입 형변환💡  (0) 2022.08.30
오버라이딩(Overriding)  (0) 2022.08.30
상속(Inheritance)  (0) 2022.08.29
static & final 💡💡  (0) 2022.08.29
static & final💡  (0) 2022.08.29
Comments