JavaRush /Java Blog /Random-JA /参照型の拡張/絞り込み: さまざまなソース - さまざまな解釈
Core
レベル 35
Екатеринбург

参照型の拡張/絞り込み: さまざまなソース - さまざまな解釈

Random-JA グループに公開済み
こんにちは。JavaRushの講義に誤りの疑いがある。クラスとそれを継承したクラスがあり、 次のようなコード行があるとします: レベル 12 コースParent parent = new Child; Child child = (Child) parent; の講義、レッスン 1 (1. ポリモーフィズムとオーバーライド)、段落 5) (型キャストによる)。 ) 1 行目は縮小、2 行目は拡張です (講義では、牛が親、クジラが相続人です) しかし、これは真実ではありません。すべてが正反対です。ここで説明されている内容の意味は明らかです。最初の行で Child 型のオブジェクトを作成し、その使用を Parent クラスに記述されているメソッドのみに限定しました。しかし、これは拡張であるため、そのような削減は暗黙的に発生します。そして、レベル 10 の追加資料には次のように書かれていました:リンクするテキスト...
拡張とは、より具体的なタイプから、より具体的ではないタイプへの移行を意味します。子供から親への移行。この例では、継承者 (Child、Child2) から親 (Parent) への変換は拡張であり、より一般的な型への移行です。プリミティブ型の場合と同様に、この移行は必要に応じて JVM 自体によって行われ、開発者には見えません。つまり、常に成功するため、追加の作業は必要ありません。つまり、JVM から生成されたオブジェクトには常にアクセスできます。親の型による継承者。親 p1=新しい子(); 親 p2=new Child2(); どちらの行でも、Parent 型の変数には別の型の値が割り当てられます。これは、変換が発生することを意味します。これは拡張機能であるため、自動的に実行され、常に成功します。
逆に、私の例の 2 行目は、同じ追加に従っています。マテリアルは括弧内にタイプを明示的に示す必要がある絞り込みです。そして講義ではそれを拡張したものとして解釈されていますが、おそらく間違っているので説明してください。型キャストに関して二重に矛盾した見方をしたくありません。以下は講義の一部ですが、 講義の断片 (前回の)講義ではまだ誤りの疑いがありましたが、これについてはどこに書けばよいのでしょうか?よくある質問には見つかりませんでした。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION