第四章:面向对象编程2
1、
程序运行结果
A
B
C
先调用父类,再调用子类
2、
程序运行结果
A
B
C
显示调用 super();
3、
程序运行结果
程序出错
原因:父类A、B的参数没有被初始化
4、
程序运行结果
A
B
C
5、
程序运行结果
Class Animal:str
Class Fish
6、
程序运行结果
Class Animal1
Class Fish
子类 Fish 隐式调用 super(); 由于没有传递参数,所以输出Animal类中无参构造函数中的内容。
7、
以上程序第几行会报错
第 7 行
原因:父类构造函数有参数,而执行 new Fish() 时在第 7 行隐式调用 super(); 没有传递参数,故而在第 7 行报错。
8、
程序运行结果
Class Animal:f1
Class Fish
Class Animal:noname
Class Fish
9、
程序运行结果
Class Animal:f1
Class Fish2
Class Animal:li
Class Fish1
10、
程序运行结果
Employee:zhao,2000.0
重写了 Object 中的方法 toString()
注意:getIncome 是 double 类型
11、
程序运行结果
Employee:zhao,2000.0
12、
程序运行结果
obj.equals(obj2)=false
obj.equals(obj3)=true
只有在两个对象变量指向同一个对象时 equals 方法才返回 true
由于 obj 和 obj2 都 new 了新的 Object(),因此两者相较是false,
而 obj3 的存的地址和 obj 存的一样,因此两者都指向了同一个 Object 的对象,所以,他们相较是 true
13、
程序运行结果
false
e1 和 e2 指向的是不同的对象,因此 equals 之后为 false
14、
程序运行结果
true
解析:
- equals(); 方法用于引用数据类型比较时,比较的是地址
- equals(); 方法用于基本数据类型比较时,比较的是值
15、
程序运行结果
true
true
true
false
instanceof 关键字来判断该对象变量所“指向”的对象是否属于该类。
例如:a instanceof Animal; 如果对象 A 属于 Animal 类,则返回 true,否则返回 false
一个对象属于子类,那么它一定属于父类
向上转型与向下转型
// 父类:Father;子类:Son;
Father f1 = new Son(); // 向上转型,f1指向Son的对象
Son s1 = (Son)f1; // 向下转型(需要用到强制类型转换)
// 此处的f1和s1均属于Son类
Father f2 = new Father();
Son s2 = (Son); // 出错,子类引用不能指向父类对象
16、
程序运行结果
出错
Animal 没有 getFurColor() 方法
17、
程序运行结果
旺财
true
true
18、
程序哪几行会出错,注释错误行之后输出什么内容
Cat c2 = (Cat)an;
System.out.println(c2.getEyesColor());
上述代码会出错
注释之后,输出:yellow
Dog 和 Cat 不是父子类关系,无法转型
19、
程序运行结果
叫声
喵喵
汪汪
对象调用一个重写方法时,调用的是实例类型(Cat、Dog),而不是对象类型(Animal)
20、
程序运行结果
喵喵
汪汪
21、
程序运行结果
喵喵
汪汪
22、
程序运行结果
draw circle
draw square
23、
程序运行结果
draw circle
draw square
24、
程序运行结果
draw circle
draw square
draw circle
draw square
25、
以下哪句不能通过编译?运行时会发生错误?
第 3 句会发生错误
Employee 中没有 getBonus(); 方法
26、
以下哪句不能通过编译?运行时会发生错误?
第 3、4 句会发生错误
27、
以下哪句不能通过编译?运行时会发生错误?
第 1、4 句会发生错误
28、
答案
D
子类和父类间的关系是 is-a 关系
29、
答案
B、C
注意:使用默认访问修饰符声明的变量和方法,对同一个包内的类是可见的。接口里的变量都隐式声明为 public static final, 而接口里的方法默认情况下访问权限为 public。
因此,如果子类和父类不在同一个包中,则子类无法直接使用父类中默认修饰的成员。
30、
答案
B
31、
答案
A
32、
答案
A、B、C、D
33、
答案
A
34、
程序运行结果
fish eat shrimp!
lion eat meat!
35、
程序运行结果
implemented f1
implemented f2
implemented f3
36、
答案
C
注意:
黄色语句错误原因:Outer 的实例 oc 不能调用Inner,Outer类可以调用Inner
绿色语句是打算在外部类以外创建内部类,此时需要使用以下方式:
Outer.Inner ic = oc.new Inner();
可见第 37 题
37、
程序运行结果
innout