問題タブ [erasure]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 消去タイプとブリッジング方法の明確化
次のコードは、ジェネリックの Oracle ドキュメントから取られています -
このコードの私の理解 -
Q - メソッドはsetData
オーバーライドまたはオーバーロードされていますか?
私の理解では、MyNode
が拡張されているためNode<Integer>
、type パラメータの値T
が に設定されていInteger
ます。
そのため、クラスには T= Integer のNode
メソッドがあり、クラスにはメソッドがあります。setData(Integer data)
MyNode
setData(Integer data)
署名が同じであるため、オーバーライドされます。
Q- メソッド setData は消去後でもオーバーライドされますか? 私の理解 -
<T>
設定方法を消してからにNode
なり、setData(Object data)
の set メソッドはMynode
-setData(Integer data)
型パラメーターがないため、削除するものは何もありません。
しかし、これは過負荷です。
Q - オーバーロードまたはオーバーライドが必要でしたか?
私の理解 - 消去前に定義されたメソッドの外観から、オーバーライドが必要でした。
Q - 消去後のオーバーライドを達成するにはどうすればよいですか?
私の理解 -ブリッジ法による。例えば:
私の理解は正しいですか?
また、 class MyNode extends Node<Integer>
いつにInteger
渡され<T>
ますか? スーパーが呼び出されたとき?