자바 상속의 특징
1.자바클래스의 상속은 단일상속이다.
2.상속은(특정 클래스가 가지는 일부 속성과 기능을 다른 클래스에 제공하기위해 맺는 클래스간의 관계이다. )
3.두 클래스를 부모와 자식관계로 맺어주는다.
4.자식은 부모의 요소를 전부 가져온다.(단, 생성자는 제외이다.)
5.조상은 자손에게 영향O , 자손클래스의 변경은 아무런 영향X.
6.상속받지 않은 클래스들은 모두 최상위 클래스 java.lang.Object클래스를 묵시적으로 상속받는다.
자 그렇다면 4번의 (단,생성자는 제외이다.) 의 부분에 대해서 호출순서를 알아보도록하겠다.
조상클래스인 superclass ,
superclass의 자식클래스인 subclasss,
subclasss의 자식클래스인 subsubclass가 있다면 생성자의 호출순서와 실행순서는 이렇게된다.
이때 생성자가 매개변수 생성자일 경우
매개변수가 있는 subclass 생성자를 호출하더라도
superclass에선 기본 생성자가 호출되고 실행된다.
만약 subclass에서 superclass의 매개변수 있는 생성자를 호출하기위해서는
super()를 사용하여 명시적으로 superclass생성자를 호출 하여야 한다.
new SubClass(3); 결과
3+Super생성자
3+sub생성자
super가 없을 때 결과
Super생성자
3+sub생성자
주의점으로는 super는 항상 생성자의 첫번째 라인에 와야 한다.
+하위 객체가 만들어 질때 먼저 상위 객체의 필드와 메소드가 메모리에 올라가고 생성자 호출후
하위 객체의 필드와 메소드가 따라 올라가고 생성자가 호출된다.
'JAVA' 카테고리의 다른 글
Object Class /equals() /== (0) | 2020.09.02 |
---|---|
상속시 호출순서에 따른 실행결과 변화 (0) | 2020.08.30 |
상속 /다형성 /메소드 오버라이드 (0) | 2020.08.28 |
배열1 /선언/생성/길이/인덱스/초기화 (0) | 2020.08.14 |
for문 while문 (0) | 2020.08.13 |