C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#での仮想vs封印vs新規vs抽象


仮想

virtualキーワードを使用すると、クラスをオーバーライドできます。子クラスの親クラスメソッドをオーバーライドするには、親クラスメソッドを仮想として宣言します。

封印

クラスが封印されていると宣言されている場合、それを継承することはできません。抽象クラスは封印されていると宣言することはできません。

上書きされないように、C#で封印されたものを使用してください。メソッドのC#で封印された修飾子を使用すると、メソッドはオーバーライドする機能を失います。封印されたメソッドは派生クラスの一部である必要があり、メソッドはオーバーライドされたメソッドである必要があります。

public sealed override void getResult() { }

新規

newキーワードを使用して、派生クラスから基本クラスのメソッドを非表示にします。これは、派生クラス関数をnewで宣言することによって行われます。これが、シャドウイングでのnewの使用方法です。

public new string getResult()

要約

抽象クラスには、派生クラスによって実装される抽象メソッドが含まれています。

abstract class Vehicle

  1. Pythonのclassmethod()

    クラスメソッドは、最初の引数としてクラス自体を受け取ります。このようにして、最初にクラスからインスタンスを作成しなくても、クラス内でメソッドを呼び出すことができます。クラスに含まれるメソッドを宣言する前にデコレータ@classmethodを使用するだけで、メソッドに直接アクセスできます。以下はclassmethidsの主な機能です。 classmethodはクラスにバインドされており、使用するクラスのインスタンス化に依存しません。 classmethodはクラスを変更でき、クラスはクラスのすべてのインスタンスに伝播します。 クラスメソッドの使用 次の例では、WeekDayとい

  2. Pythonのクラスメソッドと静的メソッド

    Pythonのクラスメソッドはメソッドであり、クラスにバインドされていますが、そのクラスのオブジェクトにはバインドされていません。静的メソッドも同じですが、いくつかの基本的な違いがあります。クラスメソッドの場合は@classmethodデコレータを指定する必要があり、静的メソッドの場合は@staticmethodデコレータが使用されます。 クラスメソッドの構文。 class my_class: @classmethod deffunction_name(cls, arguments): #Function Body return value 静的メソッ