Java프로드래밍 징문 부모와 자식클래스

Java프로드래밍 징문 부모와 자식클래스

작성일 2020.08.27댓글 1건
    게시물 수정 , 삭제는 로그인 필요

부모클래스 OverridingParent에서
1. 5번줄에 아무것도 적지않은 생성자를 생성한 이유가뭔가요?

2.9번째줄에 부모클래스의 메소드getDate를 선언했는데 그이하 Date date=new Date()를(11번째줄) 선언한 이유가뭔가요?

3. 11번째줄이 new 가 Date의구조를 파악하고 메모리를 잡으면 Date생성자 메소드를 호출해 클래스값들을 메모리에 로딩, 즉 date댁체에 Date()의 정보를 전달하는거로 아는데.. 부모클래스에선 Date()에 아무런 값도 없지않나요?

4.Date클래스래는데 1번줄에 util.Date하면서 자동으로 Date클래스가 생성된건가요?

5.12째줄에 toString()을 쓰는이유는뭔가요? 안쓰면어떻게되나요?

자식클래스 OverridingChild에서 16번째줄의 Date클래스가 마찬가지로 util을 쓰면서 생성된 Date인가요?







profile_image 익명 작성일 -

1. 기능이 필요없는 생성자이기 때문입니다. 없으면 컴파일러가 자동으로 생성해줍니다. 이 예제의 경우에는 없어도 되는 생성자입니다.

그러나 부모클래스에 파라미터가 있는 생성자가 단 하나만 있다면 자식클래스에서 반드시 super호출을 명시적으로 호출을 해줘야 합니다.

2. Date date=new Date() 은 현재 날짜와 시간을 알기 위해서 Date오브젝트를 명시적으로 파라미터가 없는 Date의 생성자를 호출하여 생성을 한 것입니다.

그리고 OverridingChid에서는 getDate()메소드를 상속 받지만 이 메소드를 재정의(오버라이딩)하고 있습니다.

그래서 OverridingParent p = new OverridingParent();

p.getDate()는 부모클래스의 getDate()가 호출이 되고

OverridingChild c = new OverridingChild();

c.getDate()는 자식클래스의 getDate()가 호출이 됩니다.

3. 2번과 동일한 질문입니다.

4. 2번과 동일한 질문입니다.

5. getDate()의 리턴타입이 String이기 때문에 타입을 일치하여야 합니다.

toString()이 없으면 타입 에러가 발생합니다.

6. 부모클래스와 마찬가지로 java.util.Date입니다.