继承Inheritance
继承 与 代码重用Inheritance and Code Reuse
判断题
基于下面这段代码
1 2 3 public class Cla { public int a;}
1 2 3 public class Dla extends Cla { public int b;}
分别判断以下代码是否会出现问题
1.
1 2 3 4 5 6 public class Main { public void run() { Cla cla = new Cla(); cla.a = 1; }}
A
正常
B
编译报错
2.
1 2 3 4 5 6 public class Main { public void run() { Cla cla = new Cla(); cla.b = 1; }}
A
正常
B
编译报错
3.
1 2 3 4 5 6 public class Main { public void run() { Dla dla = new Dla(); dla.a = 1; }}
A
正常
B
编译报错
4.
1 2 3 4 5 6 public class Main { public void run() { Dla dla = new Dla(); dla.b = 1; }}
A
正常
B
编译报错
单选题
以下哪段代码会出现问题
A
1 2 3 4 5 6 public class Cla { public int a; public void func() { a = 1; }}
B
1 2 3 public class Cla { public int a;}
1 2 3 4 5 public class Dla extends Cla { public void func() { a = 1; }}
C
1 2 3 4 5 public class Cla { public void func() { a = 1; }}
1 2 3 public class Dla extends Cla { public int a;}
D
1 2 3 public class Cla { }
1 2 3 4 5 6 public class Dla { public int a; public void func() { a = 1; }}
单选题
基于下面这些代码
1 2 3 4 5 6 7 8 9 public class Cla { public int value; public void setValueIntoCla(int value) { this.value = value; } public int getValueFromCla() { return value; }}
1 2 3 4 5 6 7 8 public class Dla extends Cla { public void setValueIntoDla(int value) { this.value = value; } public int getValueFromDla() { return value; }}
运行以下代码时,你会看到
1.
1 2 3 4 5 6 7 8 public class Main { public void run() { Dla obj = new Dla(); obj.setValueIntoCla(1); int value = obj.getValueFromCla(); Console.println(value); }}
A
<0
B
<1
2.
1 2 3 4 5 6 7 8 public class Main { public void run() { Dla obj = new Dla(); obj.setValueIntoCla(1); int value = obj.getValueFromDla(); Console.println(value); }}
A
<0
B
<1
3.
1 2 3 4 5 6 7 8 public class Main { public void run() { Dla obj = new Dla(); obj.setValueIntoDla(1); int value = obj.getValueFromCla(); Console.println(value); }}
A
<0
B
<1
4.
1 2 3 4 5 6 7 8 9 public class Main { public void run() { Dla obj = new Dla(); obj.setValueIntoDla(1); obj.setValueIntoCla(2); int value = obj.getValueFromDla(); Console.println(value); }}
A
<0
B
<1
C
<2
访问控制修饰符Access Control Modifiers
多选题
阅读下面的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public class Cla { private int v1; int v2; protected int v3; public int v4; public void run() { v1 = 1; // mark 11 v2 = 1; // mark 12 v3 = 1; // mark 13 v4 = 1; // mark 14 Cla cla = new Cla(); cla.v1 = 1; // mark 21 cla.v2 = 1; // mark 22 cla.v3 = 1; // mark 23 cla.v4 = 1; // mark 24 }}
选中上面代码中,编译可以通过的,也就是没问题的代码
A
mark 11
B
mark 12
C
mark 13
D
mark 14
E
mark 21
F
mark 22
G
mark 23
H
mark 24
答案核对
在上面题目中,你应该选中
8
个选项
多选题
基于文件夹结构
quiz
Cla.java
Dla.java
阅读下面的代码
1 2 3 4 5 6 public class Cla { private int v1; int v2; protected int v3; public int v4;}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 public class Dla extends Cla { public void run() { v1 = 1; // mark 11 v2 = 1; // mark 12 v3 = 1; // mark 13 v4 = 1; // mark 14 Cla cla = new Cla(); cla.v1 = 1; // mark 21 cla.v2 = 1; // mark 22 cla.v3 = 1; // mark 23 cla.v4 = 1; // mark 24 Dla dla = new Dla(); dla.v1 = 1; // mark 31 dla.v2 = 1; // mark 32 dla.v3 = 1; // mark 33 dla.v4 = 1; // mark 34 }}
选中上面代码中,编译可以通过的,也就是没问题的代码
A
mark 11
B
mark 12
C
mark 13
D
mark 14
E
mark 21
F
mark 22
G
mark 23
H
mark 24
I
mark 31
J
mark 32
K
mark 33
L
mark 34
答案核对
在上面题目中,你应该选中
9
个选项
多选题
基于文件夹结构
quiz
inner
Cla.java
Dla.java
阅读下面的代码
1 2 3 4 5 6 public class Cla { private int v1; int v2; protected int v3; public int v4;}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 public class Dla extends Cla { public void run() { v1 = 1; // mark 11 v2 = 1; // mark 12 v3 = 1; // mark 13 v4 = 1; // mark 14 Cla cla = new Cla(); cla.v1 = 1; // mark 21 cla.v2 = 1; // mark 22 cla.v3 = 1; // mark 23 cla.v4 = 1; // mark 24 Dla dla = new Dla(); dla.v1 = 1; // mark 31 dla.v2 = 1; // mark 32 dla.v3 = 1; // mark 33 dla.v4 = 1; // mark 34 }}
选中上面代码中,编译可以通过的,也就是没问题的代码
A
mark 11
B
mark 12
C
mark 13
D
mark 14
E
mark 21
F
mark 22
G
mark 23
H
mark 24
I
mark 31
J
mark 32
K
mark 33
L
mark 34
答案核对
在上面题目中,你应该选中
6
个选项
继承 x 构造方法Inheritance x Constructors
分析题
基于以下代码
1 2 3 4 5 6 7 8 public class Cla { public Cla() { Console.println("Cla"); } public Cla(int a) { Console.println("Cla int"); }}
1 2 3 public class Dla extends Cla { }
运行这段代码时
1 2 3 4 5 public class Main { public void run() { new Dla(); }}
你会看到
<Cla
分析题
基于以下代码
1 2 3 4 5 6 7 8 9 public class Cla { public Cla() { Console.println("Cla"); } public Cla(int a) { this(); Console.println("Cla int"); }}
1 2 3 4 5 6 7 8 9 public class Dla extends Cla { public Dla() { this(1); Console.println("Dla"); } public Dla(int a) { Console.println("Dla int"); }}
运行这段代码时
1 2 3 4 5 public class Main { public void run() { new Dla(); }}
你会看到
< < <Cla Dla int Dla
综合练习
代码题
Graph 继承提升
Q36 E05