2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

C# 抽象クラスとシールクラス

Posted at

##抽象クラスとシールクラス
・abstractキーワードを使用すると、派生クラスで実装する必要のある不完全なクラスメンバーを作成できる。
・sealedキーワードを使用すると、すでにvirtualとマークされているクラスや特定のクラスメンバーを継承しないようにできる。

virtualキーワード:オーバーライドを行う為のキーワード

##オーバーライド
継承関係にあるクラス派生クラスがベースクラスのメソッドを上書きすることをいう。

###オーバーライドのメリット
・継承した部分を目的に応じた形に書き換えることで柔軟な開発が出来る。
・修正が必要になった時の修正範囲が少なくなる。

###オーバーロードとの違い
オーバーロードは引数の数や型、返り血が異なるメソッドを同じ名前で複数定義すること。
 継承を使わず、同じクラス内で同じ名前のメソッドを作る事をいう。
オーバーライドはサブクラスでスーパークラスのメソッドを上書きすること。

⇒同じクラスで、違う動きのする同じ目名前のメソッドを作る**(オーバーロード)**
⇒別のクラスでメソッドを上書きするのが**(オーバーライド)**

オーバーライドを使うために2つのキーワード
virtual(これを付けたメソッドは仮想メソッドともいう)
⇒これを付けたメソッドはオーバーライドしていいという目印。
 スーパークラスのメソッドにつける。サブクラスでオーバーライドせずそのまま使うこともできる。

override
オーバーライドするための宣言。サブクラスのメソッドにつける。
(これを付けないとオーバーライドできない)

抽象メソッド
⇒メソッドの名前と引数の型、数、戻り値の型だけを定義したメソッド。
⇒メソッドの中に具体的な処理を記述してはいけない。
※必ずオーバーライドしなければならない

抽象クラス
⇒抽象メソッドが一つ以上含まれているクラス。
⇒何も処理が記載されていないメソッドがある為そのままの使用が出来ない。
※必ず継承しなければならない

派生クラスでオーバーライドを禁止したい時
sealed修飾子を使ってシールメソッドを作る
sealedはサブクラスのサブクラスでオーバーライドを禁止するときに使用。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?