목록이것이 자바다/07 상속 (15)
충분히 쌓여가는
현실에서 부모 없는 자식이 있을 수 없듯이 자바에서도 자식 객체를 생성하면 부모 객체가 먼저 생성된 다음에 자식 객체가 생성된다 모든 객체는 생성자를 호출해야 한다 부모 객체도 예외는 아니다, 그렇다면 부모 객체의 생성자는 어디서 호출된 것일까? 부모 생성자는 자식 생성자의 맨 첫 줄에 숨겨져 있는 super()에 의해 호출된다 //자식 생성자 선언 pulbic 자식 클래스(...) { super(); ... } super()은 컴파일 과정에서 자동 추가되는데, 부모의 기본 생성자를 호출한다 만약 부모 클래스에 기본 생성자가 없다면 자식 생성자 선언에서 컴파일 에러가 발생한다 !부모 클래스에 기본 생성자가 없고 매개변수를 갖는 생성자만 있다면 super(매개값, ...) 코드를 직접 넣어야 한다 //자식..
다른 언어와 달리 자바는 다중 상속을 허용하지 않는다 여러 개의 부모 클래스를 상속할 수 없다, 따라서 extends 뒤에는 단 하나의 부모 클래스만 와야한다 잘못된 예 public class 자식 클래스 extends 부모클래스1, 부모클래스2 { } 정상 예 public class 자식 클래스 extends 부모클래스1 { }
1. 자바의 상속에 대한 설명 중 틀린 것은 무엇입니까? ➊ 자바는 다중 상속을 허용한다. ➋ 부모의 메소드를 자식 클래스에서 재정의(오버라이딩)할 수 있다. ➌ 부모의 private 접근 제한을 갖는 필드와 메소드는 상속의 대상이 아니다. ➍ final 클래스는 상속할 수 없고, final 메소드는 오버라이딩할 수 없다. 답: 1 2. 클래스 타입 변환에 대한 설명 중 틀린 것은 무엇입니까? ➊ 자식 객체는 부모 타입으로 자동 타입 변환된다. ➋ 부모 객체는 어떤 자식 타입으로도 강제 타입 변환된다. ➌ 자동 타입 변환을 이용해서 필드와 매개변수의 다형성을 구현한다. ➍ 강제 타입 변환 전에 instanceof 연산자로 변환 가능한지 검사하는 것이 좋다. 답: 2 3. final 키워드에 대한 설명으로..