본문 바로가기
dev/JAVA

[JAVA] 생성자 맨날 까먹음,,,,...!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

by dev_Step 2022. 5. 28.

Children() 생성자에 첫줄에 super(); 가 없을때
Children() 생성자에 첫줄에 super(); 가 있을때

부모를 상속한 자식의 생성자에는 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