私は次のクラスを持っています:
class Polygon
{
protected string name;
protected float width, height;
public Polygon(string theName, float theWidth, float theHeight)
{
name = theName;
width = theWidth;
height = theHeight;
}
public virtual float calArea()
{
return 0;
}
}
class Rectangle : Polygon
{
public Rectangle(String name, float width, float height) : base(name,width,height)
{
}
public override float calArea()
{
return width * height;
}
}
主な機能1:
static void Main(string[] args)
{
Rectangle rect1 = new Rectangle("Rect1", 3.0f, 4.0f);
float Area = rect1.calArea()
}
主な機能 2:
static void Main(string[] args)
{
Polygon poly = new Rectangle("Rect1", 3.0f, 4.0f);
float Area = poly.calArea()
}
Main 関数 2 が動的バインディングを使用することを理解しています。
Rectangle クラスの calArea メソッドで override キーワードを new に変更すると、静的バインディングになります。メイン関数 1 はどうですか? 静的/動的バインディングを使用していますか?