Programming/Java

[Java기초] 상속에서 클래스 생성 과정과 형변환

주죵 2021. 4. 25. 23:50
728x90
반응형

클래스 생성 과정

상속받은 클래스의 생성자를 생성할때 상위클래스의 생성자를 호출한다. 즉, 하위클래스가 생성이 될때 먼저 상위클래스가 생성된다는것!

상속받은 클래스에선 상위클래스의 생성자를 따로 호출한다는등의 표현이 보이지 않아도 컴파일 과정에서 컴파일러에 의해 자동적으로 이뤄진다. (물론, super를 이용해 따로 표현하는것도 가능하다.)

// 예시코드
public class Customer {

    public Customer() {
    }
}


public class VIPCustomer extends Customer {
	
    public VIPCustomer() {
    // VIPCustomer 객체 생성시 컴파일러가 자동적으로 Customer생성자를 호출하고 VIPCustomer 객체를 생성함
    // super() 가 컴파일러에 의해 암묵적 생성
    }
}

 

위의 경우처럼 상위클래스의 생성자가 default형태(생성자의 파라미터가 없는경우)인 경우 implicit하게 컴파일러에서 처리해줄수 있으나 그렇지 않은경우는 직접 명시하여 생성자를 만들어줘야한다.

 

메모리 상태

메모리 또한 마찬가지다. 상위클래스의 생성자를 호출한 후 상속받은 클래스의 생성자가 만들어지는 형태이기 때문에 상위클래스의 멤버변수들이 힙메모리에 생성된다. 이에 더해 상속받은 클래스에서 추가적으로 들어가는 변수들이 함께  메모리에 생성된다

 

 

728x90

'Programming > Java' 카테고리의 다른 글

[Java 기초] 형변환과 오버라이딩 메서드 / 다형성  (0) 2021.04.28
[Java SSAP 기초] Array vs ArrayList  (0) 2021.02.02
18. JAVA 네트워크  (0) 2021.01.17
17. JAVA 그래픽  (0) 2021.01.17
16. 스레드(Thread)  (0) 2021.01.16