题目:
有如下代码
1) //MyClass.java
2) package corejava.chp6;
3) public class MyClass{
4) int value;
5) }
6)
7) //MySubClass.java
8) package corejava.temp;
9) import corejava.chp6.MyClass;
10) public class MySubClass extends MyClass{
11) public MySubClass(int value){
12) this.value = value;
13) }
14) }
选择正确答案:
A. 编译通过
B. 编译不通过,应把第12 行改成super.value = value;
C. 编译不通过,应把第12 行改成super(value);
D. 编译不通过,可以为MySubClass 增加一个value 属性
E. 编译不通过,把第4行改为protected int value; 把第12 行改为super.value = value;
解:
//考点:继承、访问修饰符
package corejava.chp6;
public class MyClass {
int value;//默认修饰符作用范围仅限本类、同包!!!
}
package corejava.temp;
import corejava.chp6.MyClass;
public class MySubClass extends MyClass {
//继承到了int value;
int value;//为MySubClass 增加一个value 属性
public MySubClass(int value) {
this.value = value;//找本类中的value属性,不认继承到的
}
}
/*选择正确答案:
falseA. 编译通过
falseB. 编译不通过,应把第7行改成super.value = value;
falseC. 编译不通过,应把第7行改成super(value);
falseD. 编译不通过,可以为MySubClass 增加一个value 属性//不严谨,如果说增加int类型的value是正确的
tureE. 编译不通过,把父类第3行改为protected int value; 把第12 行改为super.value = value;
*/
答:
falseA. 编译通过
falseB. 编译不通过,应把第7行改成super.value = value;
falseC. 编译不通过,应把第7行改成super(value);
falseD. 编译不通过,可以为MySubClass 增加一个value 属性//不严谨,如果说增加int类型的value是正确的
tureE. 编译不通过,把父类第3行改为protected int value; 把第12 行改为super.value = value;