【C#】newとoverrideの違い

  • |
【C#】newとoverrideの違い
   

クラスを継承する際に、メソッドを定義する際に色々と方法があります。
この際に、newを使う場合、またoverrideを使う場合があり、今ままでその辺りを特に意識しないで利用していたので、改めて勉強をしてみました。

Override と New

実際にコードを見てどのような挙動になるのか試してみます。


まずは、スーパクラスとサブクラスを作成します。
それぞれ、メソッドを定義をして、newキーワードとvirtualキーワードをつけます。


Unity上で試しているのでAddComponentを利用しています。

結果は以下の様なログが吐き出されます。


newとoverrideの違いは、インスタンスした時の方がスーパークラス・サブクラスで呼び出されるメソッドが違うことです。
ジェネリックを利用する場合に、スーパークラスで格納する場合などの場合、型の違いで上手く動かなくなる場合があります。

詳しくはこちらを参照に。
Override キーワードと New キーワードを使用する場合について
Override キーワードと New キーワードによるバージョン管理 (C# プログラミング ガイド)

Related Posts Plugin for WordPress, Blogger...