爲了節省我自己的一些寫作,您爲了節省您一些閱讀,我構建了一個基本示例來幫助我解釋我想實現的目標。如果你有一個既使用棧類又使用隊列類的程序,並且這兩個類都有相同的方法/函數,那麼最佳選擇可能是創建ab抽象類並在兩個類中繼承它。如果這些類是通用的,那麼抽象類也必須是通用的。因此,這裏的抽象類會是什麼樣子的例子:繼承一個模板抽象類C#
public abstract class Sequence <T>
{
public abstract void push(T value);
public abstract T pop();
public abstract T peek();
public abstract int size();
public abstract bool isEmpty();
}
而且我們認爲以下是Stack
類需要繼承Sequence
類:
public class Stack<T>
{
private List<T> stk;
public Stack()
{
stk = new List<T>();
}
public void push(T value)
{
stk.Add(value);
}
public T pop()
{
T topValue = peek();
stk.RemoveAt(size() - 1);
return topValue;
}
public T peek()
{
return stk[size() - 1];
}
public int size()
{
return stk.Count;
}
public bool isEmpty()
{
return size() == 0;
}
}
現在,我的問題是,你會如何繼承Stack
的Sequence
類? 正如您可能已經注意到的那樣,我想要正確的是語法,而不是程序的功能。我無法找到直接適用於我的問題的解決方案。
+1因爲如果沒有想要在Queue和Stack類之間共享的通用代碼,將抽象類更改爲接口的想法。 –