YS's develop story

Java ) java 상속관련 .. 본문

Java

Java ) java 상속관련 ..

Yusang 2020. 10. 16. 08:35

 

java 상속과 관련되어서 정리하고자 하는 것이 있어서 글을 작성했습니다.

 

 

super라는 상위클래스가 있고 sub이라는 하위 클래스가 있습니다.

package javapractice;

class JavaPractice {
	public static void main(String[] args) {
		
		Sub class1=new Sub();
        
		}
}
    
class Super{
	
	 Super(){
		 System.out.println("this is super class");
	 }
}

class Sub extends Super{
	
	Sub(){
		 System.out.println("this is Sub class");
	}
}

 

이 코드의 실행 결과는 아래와 같습니다.

 

여기서 우리는 하위 클래스의 인스턴스 생성시 상위 클래스의 생성자가 자동적으로 생성됨을 알 수 있죠.

그리고 상위 클래스의 생성자가 먼저 호출 되네요.

 

 

그런데 하위 클래스의 인스턴트를 생성하기만 했을 뿐인데 왜 상위 클래스의 생성자가 호출 됐을까요?

 

 

바로 아래처럼 인자를 받지 않는 상위클래스의 생성자 호출문이 자동으로 삽입되었기 때문입니다.

class Sub extends Super{
	
	Sub(){
         super();
		 System.out.println("this is Sub class");
	}
}

 

정리를 하자면....

 

상속된 하위클래스의 인스턴스를 생성하면 하위클래스,상위 클래스의 생성자가 모두 호출 됩니다.

이 때 상위 클래스의 생성자가 모두 호출되고, 하위 클래스의 생성자가 호출됩니다.

 

 

Comments