YS's develop story
Java ) java 상속관련 .. 본문
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");
}
}
정리를 하자면....
상속된 하위클래스의 인스턴스를 생성하면 하위클래스,상위 클래스의 생성자가 모두 호출 됩니다.
이 때 상위 클래스의 생성자가 모두 호출되고, 하위 클래스의 생성자가 호출됩니다.
'Java' 카테고리의 다른 글
JSP, Tomcat활용하여 MySQL 데이터 가져오기 (0) | 2022.11.09 |
---|---|
JAVA error) The method must override or implement a supertype method (1) | 2020.11.06 |
JAVA error) Implicit super constructor is undefined, Constructor call must be the first statement in a constructor. (0) | 2020.10.14 |
JAVA ) java 2차원 배열 관련.. , 열혈 java 프로그래밍 309쪽 문제 2번 (0) | 2020.10.10 |
JAVA ) static이라고 선언된 변수, 클래스 변수 (0) | 2020.10.04 |
Comments