The Author Online Book Forums are Moving

The Author Online Book Forums will soon redirect to Manning's liveBook and liveVideo. All book forum content will migrate to liveBook's discussion forum and all video forum content will migrate to liveVideo. Log in to liveBook or liveVideo with your Manning credentials to join the discussion!

Thank you for your engagement in the AoF over the years! We look forward to offering you a more enhanced forum experience.

cemsultan (19) [Avatar] Offline

i. Small point: when reading page 212, section 8.4.4 Diamond problem, in the sentence: ‘Just as a side note, you may be wondering what happens if we take our example above and add an abstract method hello...’, I was under the impression it was the 'continuation' of the adapted example directly above it, that is, with B also having a default method hello. Hence, rewording may be worthwhile?

While on this point, you may consider adding the example that I thought it was for completeness? That is, a scenario of:

[A with default method +void hello()]

[B extending A and also having a default method +void hello()]

[C extending A, but having an abstract method +void hello()]

[Class D implements both B and C]

ii. Even though it may be obvious, may be for completeness, a small point on why interface methods has the “default” keyword prefixed and not have it like the way it is in abstract classes for consistency purposes, that is, methods with implementation are understood as default methods, just like signatures without implementation in Abstract classes are understood as an abstract methods.

iii. There are a few pages, from 197 to 200 on the concept of interfaces in that adding extra methods breaks the interface contract, etc., but this is not unique to Java8 (or 7) and I assume that it is common knowledge Java developers. Hence, it is in my opinion just one or two sentences explaining this should be enough like you do in page. Having said that, I do think the section titled ‘Different types of compatibilities: binary, source and behavioural’ on this subject is a good reminder.

iv. The UML diagram Figure 8.2 on page 199 for API version 2 with method name setSizeWithGrowthFactor(int, int) does not reflect the method name setRelativeSize(int, int) in the code on page 198 for API version 2.

v. Typo error: page 204, the code note ‘#B: implements four interfaces’ should be six.

raoul-gabriel.urma (37) [Avatar] Offline
Re: Points for Chapgter 8
Hi Cem,

Thanks again for all your good feedback! It's a bit hectic at the moment as few new chapters coming up. I'll integrate your suggestions for the next version.