1. class Super {
2. private int a;
3. protected Super(int a) { this.a = a; }
4. }
.....
11. class Sub extends Super {
12. public Sub(int a) { super(a); }
13. public Sub() { this.a= 5; }
14. }
Which two, independently, will allow Sub to compile? (Choose two.)
A. Change line 2 to:
public int a;
B. Change line 2 to:
protected int a;
C. Change line 13 to:
public Sub() { this(5); }
D. Change line 13 to:
public Sub() { super(5); }
E. Change line 13 to:
public Sub() { super(a); }
Answer: CD能讲解一下答案选CD的理由吗??
2. private int a;
3. protected Super(int a) { this.a = a; }
4. }
.....
11. class Sub extends Super {
12. public Sub(int a) { super(a); }
13. public Sub() { this.a= 5; }
14. }
Which two, independently, will allow Sub to compile? (Choose two.)
A. Change line 2 to:
public int a;
B. Change line 2 to:
protected int a;
C. Change line 13 to:
public Sub() { this(5); }
D. Change line 13 to:
public Sub() { super(5); }
E. Change line 13 to:
public Sub() { super(a); }
Answer: CD能讲解一下答案选CD的理由吗??
C this(5)隐士调用protected Super(int a)
能讲讲理由吗???
B. 与A同理
E. 父类的私有在子类中不可见
它不是隐式调用的public Sub() { this(5); }
public Sub(int a) { super(a); }
protected Super(int a) { this.a = a; }是这样依次调用的: this(5)调用本身的 Sub(5) 然后才是 super(5)
这个就是继承的方法调用:通过继承子类自动拥有了基类的所有成员变量和方法……