JRadioButtonMenuItem下の画像を見てください。拡張JRadioButtonされていないことに注意してくださいJToggleButton。私の推測では、彼らはコードを繰り返します。:Pそれとも、これらのトグルコンポーネント内に中間クラスがありますか?

問題は、Java が多重継承をサポートしていないことです。それ以外の場合は、両方を拡張することを検討できます(JRadioButtonMenuItemただし、それが適切な実装の選択であったかどうかは明らかではありません)。JMenuItemJRadioButton
したがって、これは、どちらかを選択する必要があることを意味します。この場合、選択は拡張するために行われましたJMenuItem。
さて、見てみるとJMenuItem、ボタンの現在の状態に関連するすべてが格納されている場所 (武装、選択など)を実際にカプセル化するJRadioButton共通の祖先があることがわかります。AbstractButtonButtonModel
a の場合はandJRadioButtonMenuItemを使用するToggleButtonModelため、同じモデルが と で共有されていることが分かりJRadioButtonますJRadioButtonMenutItem。
ビューに関しては、これはすべて に委譲され、BasicRadioButtonMenuItemUI特にBasicMenuItemUI(の親であるBasicRadioButtonMenuItemUI) に委譲されます。最終的には、現在のルック アンド フィールに依存して、さまざまなアイコン、スタイル、境界線、フォントなどを提供します...
そして、これが全体の流れです。