質問
プログラミングの基本的なことを訊きたいのですが、オーバーライドのメリットがイマイチわかりません。
オーバーライドはパターン1の様に使うと派生先のCatとDogのVoice関数を上書きできることは理解はしています。
ですが、パターン2でもいいのではないかと考えてしまいます。
なので、オーバーライドのメリットを教えてください。
メモリの節約になるとかですかね??
パターン1
C#
1class Animal 2{ 3 protected string name; 4 5 protected virtual void Voice() 6 { 7 8 } 9} 10 11class Cat : Animal 12{ 13 private override void Voice() 14 { 15 Debug.Log("にゃー"); 16 } 17} 18 19class Dog : Animal 20{ 21 private override void Voice() 22 { 23 Debug.Log("ワン"); 24 } 25}
パターン2
C#
1class Animal 2{ 3 protected string name; 4} 5 6class Cat : Animal 7{ 8 private void Voice() 9 { 10 Debug.Log("にゃー"); 11 } 12} 13 14class Dog : Animal 15{ 16 private void Voice() 17 { 18 Debug.Log("ワン"); 19 } 20}
「カプセル化」と「継承」と「多態性」の三点セットで考えた方が良さそうです。
> メモリの節約になるとかですかね??
それは完全に誤解ですね。誤解を解くためにも上に書いた三点セット(オブジェクト指向の三大要素)で考えることをお勧めします。
回答4件
あなたの回答
tips
プレビュー