- ★★Java質問・相談スレッド179★★ [無断転載禁止]©2ch.net
360 :デフォルトの名無しさん[sage]:2016/12/29(木) 01:59:20.86 ID:30kHN7oe - 単なる定数に、インタフェースの名前空間を使って、区別しているだけ
元々、インタフェースにフィールド(メンバ変数)は持てない。 関数の実装も持てない。 つまり、メモリを割り当てるようなものは持てない インタフェースとは単なる、マーカー・決め事。 実装先で関数を実装するという、ルールを強制する仕組み
| - ★★Java質問・相談スレッド179★★ [無断転載禁止]©2ch.net
368 :デフォルトの名無しさん[sage]:2016/12/29(木) 21:51:19.05 ID:30kHN7oe - C++では、多重継承・ダイヤモンド継承がある
P ← A P ← B 親クラスPを継承したクラス、A, B を同時に継承すると、 Pのメンバ変数の部分が、2重に確保される P.x があるとき、A.x, B.x でアクセスすると、異なるメンバ変数になってしまう。 結局、多重継承はややこしいから、多くの言語で禁止された インタフェースでは、メンバ変数を持たないから、こういう問題は起きない
|
|