回答編集履歴

1 追記

argius

argius score 9403

2015/09/26 23:44  投稿

黒本を読んだことが無いので、その本で言っている「差分」の定義がどんなものかは分かりません。また、正確なJava言語仕様上の定義も分かりませんが、
`bb`クラスは、「`cc`クラスを継承した新しいクラス」という点が機能の差分となっていると考えられます。
本題とはあまり関係ないかもしれませんが、
`new cc(){}`は`cc`クラスの匿名サブクラスのインスタンス生成になっています。
これは意図的なものでしょうか?
これは意図的なものでしょうか?
---
(追記)
最初と言っていることが変わってしまいますが...
差分というのは、おそらくJava以外の言語(C++ とか?)の継承のケースのことを言っているのではないかと思いました。ただ、この辺はあまり詳しくないので自信はないです。
Java言語仕様のことではなく、たとえのような意味でいっているとしたらそれはそれで語弊があるような気もします。
言語仕様に拠れば、Javaの場合は、差分でなく、主に継承関係のチェックだけでダウンキャスト(Narrowing Reference Conversion)が可能かをチェックしています。
言語仕様の最新版(Java8)は英語ですが下記です。(5.1.6)
[Chapter 5. Conversions and Contexts - Java Languate Specification](https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.1.6)
日本語版は少し古いですが、下記ページの「5.1.5 参照型の縮小変換」を参照して下さい。
[Java言語規定 変換及び昇格](http://www.y-adagio.com/public/standards/tr_javalang/5.doc.htm#25379)

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る