继承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

ZZAX 微信公众

文档一更新,立刻告诉你