返回列表 回复 发帖
书不在手边,不能一一核实。下面是几个肯定有问题的:

241页:在一类车,一个类 标题下面的文字:“现在把代码从新编写”改为“现在把代码重新编写”
242页:if(isBus) 这个语句应该不用了,因为已经分类写了。(如果要,也要在class声明boolean isBus变量)
245页:第三行:“那个类”改为“哪个类”
246页:也是if(isBus)问题
283页:UseCarGroup类中单行注释那里“创建一个CarBase对象”应改为“创建一个SportCar对象”。
363页:第四个方框那里‘接口中规定的说有抽象方法”改为‘接口中规定的所有抽象方法”。

===========================================
下面的需要根据上下文来确定
264页:第二行 “CarBase类是SportCar类的对象”这句话应该是错的,望修正。(应该是父类吧)
275页:UsingPara类下面的文字后面开始,这一节,经常把 followSpeed写成followUp。
313页:“通过上面的例程我们看到,可以在非静态方法中使用非静态变量”删掉“非”字。(非静态,应该是指是成员,需要根据例程来看)
333页:第一行代码:CarStatus改为carStatus 和第二行也是这样改。
335页:Bike类 getBikeStatus方法中:CarStatus改为carStatus 和下面return也是这样改。

可能改得不对,望见谅。谢谢。

==========================================
interface A{}
interface B{}
interface C extends A ,B {}
接口的extends 和implements没有本质不同。Java不允许多继承是针对类来说的,而对于接口则无所谓。核心就是接口中不允许有方法的实现。所以不会造成什么困扰。所以你给出的这个例子可以算是一个语法糖。

在你给的这个例子中,如果ABC都是类的话,而且A和B中都有一个m1方法,那么当用C的对象调用m1方法的时候,无从得知到底应该调用A的还是B的m1方法。这时候语法就会更加复杂,如果你知道CPP的多继承,可以参考CPP多继承对于这种情况的语法。而如果都是接口,就没有这种问题,因为接口中的方法都是抽象方法,没有实现。所以不存在“调用的是A的还是B的m1方法”,因为实际调用的,其实还是C的m1方法。
返回列表