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

C#の実行時ポリモーフィズムとは何ですか?


ランタイムポリモーフィズムには、動的バインディングまたは遅延バインディングとも呼ばれるメソッドオーバーライドがあります。抽象クラスと仮想関数によって実装されます。

抽象クラス

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

実行時ポリモーフィズムを実装する抽象クラスの例を見てみましょう-

using System;

namespace PolymorphismApplication {
   abstract class Shape {
      public abstract int area();
   }

   class Rectangle: Shape {
      private int length;
      private int width;

      public Rectangle( int a = 0, int b = 0) {
         length = a;
         width = b;
      }

      public override int area () {
         Console.WriteLine("Rectangle class area :");
            return (width * length);
      }
   }

   class RectangleTester {
      static void Main(string[] args) {
         Rectangle r = new Rectangle(10, 7);
         double a = r.area();
         Console.WriteLine("Area: {0}",a);
         Console.ReadKey();
      }
   }
}

Rectangle class area :
Area: 70

仮想関数

継承されたクラスに実装したいクラスで関数を定義する場合は、仮想関数を使用します。仮想関数は、継承されたクラスごとに異なる方法で実装でき、これらの関数の呼び出しは実行時に決定されます。


  1. C#の抽象クラス

    C#の抽象クラスには、抽象メソッドと非抽象メソッドが含まれます。クラスは、抽象クラスとして抽象として宣言されます。抽象クラスをインスタンス化することはできません。 抽象クラスVehicleと抽象メソッドdisplay()-がある例を見てみましょう。 public abstract class Vehicle {    public abstract void display(); }  抽象クラスには、バス、車、オートバイの派生クラスがあります。以下は、バス派生クラスの実装です- public class Bus : Vehicle {    

  2. Javaの抽象クラス

    宣言にabstractキーワードを含むクラスは、abstractクラスと呼ばれます。 抽象クラスには、抽象メソッド、つまり本体のないメソッドが含まれる場合と含まれない場合があります(public void get();) ただし、クラスに少なくとも1つの抽象メソッドがある場合、そのクラスは抽象として宣言する必要があります。 クラスが抽象として宣言されている場合、インスタンス化することはできません。 抽象クラスを使用するには、それを別のクラスから継承し、そのクラスに抽象メソッドの実装を提供する必要があります。 抽象クラスを継承する場合は、その中のすべての抽象メソッドに実装を提供する必要がありま