부모를 상속한 자식의 생성자에는 super(); 가 첫줄에 생략되어 있지만 항상 실행된다.
// 결과를 보면
//1번
부모로 부모를 생성할떄는
Parent p = new Parent();
가장먼저 부모의 생성자가 실행되고, 모든 메서드들이 부모에서 정의한대로 실행된다.
//goOut() 의경우 자식에서만 정의한 메서드이므로 부모는 사용하지 못함
//2번
Children c = new Children();
// 부모를 상속한 자식 클래스를 // 자식으로 생성
// 부모의 생성자가 실행되고 -> 자식의 생성자가 생성됨.
// 자식에 존재하지 않은 clean()의 경우는 부모에서 정의된 clean() 함수가 사용되었음
// 인스턴스 변수와 메서드들은 -> 자식에서 정의한 대로 실행되었음
//3번
Parent p = new Children();
// p라는 객체가 생성될때 new Children(); 생성자를 거쳐서 생성되기 때문에
// 부모 생성자 실행 -> 자식 생성자 실행
// 메서드의 경우는 자식과 동일한 메서드가 있을 경우는 자식에서 재정의한 메서드가 실행되고,
부모에서만 있던 메서드는 부모에서 정의한대로 실행된다.
//goOut() 의경우 자식에서만 정의한 메서드이므로 부모는 사용하지 못함
'dev > JAVA' 카테고리의 다른 글
[JAVA] 매개변수(Parameter) , 인수(argument) (0) | 2022.05.30 |
---|---|
[JAVA] 클래스 (0) | 2022.05.30 |
[JAVA] 변수 (0) | 2022.05.30 |
[JAVA] 객체 생성 (0) | 2022.05.29 |
[JAVA] 날짜를 비교하여 반복문 돌리기 (0) | 2022.01.15 |