繼承和派生類
通過創建一個從現有類派生的新類,我們可以擴展現有類的功能。派生類繼承了基類的屬性,並且我們可以在需要時添加或重寫方法和屬性。
在 C# 中,繼承和接口實現都通過 : 運算符來定義,這等同於 Java 中的擴展和實現。注意,基類應該一直在類聲明的最左邊。
同 Java 一樣,C# 不支持多重繼承,這意味著類不能從多個類中繼承。然而,我們可以為此目的而采用與 Java 相同的方式使用接口,正如我們在下一部分中將看到的。
下面的代碼定義了一個名為 Point 的類,它有兩個私有成員變量 x 和 y,表示點的位置。這些變量可以分別通過名為 X 和 Y 的屬性來訪問:
public class Point
{
private int x, y;
public Point()
{
x = 0;
y = 0;
}
public int X
{
get
{
return x;
}
set
{
x = value;
}
}
public int Y
{
get
{
return y;
}
set
{
y = value;
}
}
}
我們將從 Point 類派生一個新類(比如說名為 ColorPoint),如下所示:
public class ColorPoint : Point
於是 ColorPoint 繼承了基類的所有字段和方法,我們可以根據需要向派生類中添加新的字段和方法來提供額外的特性。在這個示例中,我們添加了一個私有成員和一些訪問器來為點增加顏色:
using System.Drawing;
public class ColorPoint : Point
{
private Color screenColor;
public ColorPoint()
{
screenColor = Color.Red;
}
public Color ScreenColor
{
get
{
return screenColor;
}
set
{
screenColor = value;
}
}
}