java第十版第11章答案_《Java语言程序设计》(基础篇原书第10版)第十一章复习题答案...

第十一章

11.1:一个子类是父类的子集,说法是false

11.2:extend

11.3:某些程序设计语言是允许从几个类派生出一个子类的。这种能力称为多重继承

( multiple inheritance)。但是在 Java 中是不允许多重继承的。一个 Java 类只可能直接继承自一个父类。这种限制称为单一继承( single inheritance)。

11.4:a)中类的输出结果为:A’s no-arg constructor is invoked ; 创建B类的对象时,首先会构造B类的函数,在该程序内,是构造B类的无参构造函数,但在构造B类前,会首先构造父类A类的无参构造函数,因为A类显式的定义了构造方法,所以没有无参构造方法。

11.5:利用super关键字调用父类的构造方法,super()或者super(argument)。

11.6:false,如果父类的显式的定义了构造方法,那么在子类构造无参方法前,无法调用父类的无参构造方法。

11.7:false,只能重写父类的可访问的方法

11.8:false,只能重写父类的可访问的方法

11.9:利用super()或者super(arguments),而且super语句必须写在第一行。

11.10:利用super.method()或者super.method(args).

11.11:第5行:this.radius = radius;

第21行:super(radius);

第22行:this.length = length;

第27行:super.getArea() * length;

11.12:重栽意味着使用同样的名字但是不同的签名来定义多个方法。重写意味着在子

类中提供一个对方法的新的实现。方法重写发生在通过继承而相关的不同类中;方法重载可以发生在同一个类中,也可以发生在由于继承而相关的不同类中。方法重写具有同样的签名和返回值类型;方法重载具有同样的名字,但是不同的参数列表.

11.13:方法重写

11.14:这将是一个语法错误。

11.15:方法重载。

11.16:它强制编译器检查重写方法的签名,以确保正确定义该方法。

11.17:多态意味着父类的变量可以指向子类对象。方法可以在沿着继承链的多个类中实现。JVM 决定运行时调用哪个方法,这就是动态绑定。

11.18:匹配方法的签名和绑定方法的实现是两个不同的问题。引用变虽的声明类型决定了编译时匹配哪个方法。在编译时,编译器会根据参数类型、参数个数和参数顺序找到匹配的方法。一个方法可能在沿着继承链的多个类中实现dava 虚拟机在运行时动态绑定方法的实现,这是由变量的实际类型决定的。

11.19:new int[50]不能赋值给Object[]类型的变量,但是new Integer[50],new String[50]或者new Object[50]可以赋值给Object[].

11.20:第8行错误,因为int[]不能赋值给Object[].

11.21:输出结果为:

(1)Person Person

Student Person

11.22:输出结果为:B’s constructor is invoked A’s constructor is invoked

在调用new A(3)时,将调用对象的默认构造函数,在执行B的构造函数中的任何语句前调用对象的构造函数。

11.23:输出结果为:

I from A is 40

I from A is 60;

I from B is 60;

11.24:True :总可以将子类实例转换为父类;

False :父类的实例不一定都可以转换成子类。

11.25:

(circle instanceof GeometricObject) true

(object instanceof GeometricObject) true

(circle instanceof Circle) true

(object instanceof Circle) false

b. 下面的语句能够成功编译吗?

Circle circle = new Circle(5); 可以成功编译

GeometricObject object = circle;

c. 下面的语句能够成功编译吗? 不能成功编译

GeometricObject object = new GeometricObjectO;

Circle circle = (Circle)object;

11.26:

A)true

B)false

C)true

D)true

E)false

F)true

G)true

H)false

I)可以 ; 不可以

J)可以 ; 不可以

K)不合法

L)不合法

M)合法

11.27:语句Object apple = (Apple)fruit;会导致ClassCastingException错误。

11.28:是的,每一个对象都有toString方法和equals方法,因为他们来自Object类,并且他们也是java类所可以访问的,重写这些方法合适。

11.29:输出结果为:a)False b)True

11.30:

A) ArrayList list = new ArrayList ();

B) list.add(object);

C) list.add(0, object);

D) list.size();

E) list.remove(object);

F) list.remove(list.size() - 1);

G) list.contains(object);

H) list.get(index)

11.31:list.add(new java.util.DateO);错误,因为你创建的是字符串数组,而不是Date类型的数组;list.set(3,“Dallas”);System.out println(list.get(3)); 语句错误,因为无法找到下标为3的数组元素。

11.32:调用一次list.remove(“Dallas”)后的列表为{“Dallas”,“Houston”,“Dallas”},

修改列表,使得删除所有具有值“Dallas”。

for (int I = 0; I < list.size(); i++){

if (list.remove(“Dallas”))

i–;

}

11.33:因为ArrayList类有两种重载方法,分别是remove(index)和remove(object),所以list.remove(1)表示去除下标为1的元素,所以结果为[2, 3]

11.34:是double型的数据,所有改为list.add(1.0);

11.35:改为:

ArrayList array = {3, 5, 95, 4, 15, 34, 3, 6, 5};

ArrayList list = new ArrayList<> (Arrays.asList(array));

11.36:改为:

ArrayList array = {3, 5, 95, 4, 15, 34, 3, 6, 5};

11.37:default修饰符

11.38:protected修饰符

11.39:可以; 不可以; 可以

11.40:不可以; 不可以; 可以

11.41:使用final关键字。

11.42:

a)true

b)false

c)true

d)true

e)false

f)false

本文地址:https://blog.csdn.net/qq_37500052/article/details/107267542

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值