본문 바로가기

오답노트

클래스 상속 연습문제(2)

▶문제8

 

다음 코드에서 생성자로 인한 오류를 찾아내어 이유를 설명하고 오류를 수정하라.

 

1
2
3
4
5
6
7
8
9
class A {
   private int a;
   protected A(int i) { a = i; }
}
class B extends A {
   private int b;
   public B() { b = 0; }
}
 
cs

 

[답]

 

-. B가 A를 상속받았으니 값도 B가 객체생성하면서 데이터를 받았을텐데 데이터를 받을 A의 기본생성자가 classA에 있다. 

-. public A(){}의 생성자를 만들어주거나 public B(){ super(1); b=0;}으로 수정한다. 

 

▶문제9

 

다음 추상 클래스의 선언이나 사용이 잘못된 것을 있는 대로 가려내고 오류를 지적하라.