【发布时间】:2013-08-19 08:31:06
【问题描述】:
为了节省自己的写作时间,为了节省您的阅读时间,我构建了一个基本示例来帮助我解释我想要实现的目标。
假设您有一个程序同时使用堆栈类和队列类,并且两个类具有相同的方法/功能,最佳选择可能是创建 ab 抽象类并在两个类中继承它。如果类是泛型的,那么抽象类也必须是泛型的。下面是抽象类的示例:
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();
}
我们假设以下是需要继承 Sequence 类的 Stack 类:
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 类?
正如您可能已经注意到的那样,我试图正确的是语法,而不是程序的功能。我找不到直接适用于我的问题的解决方案。
【问题讨论】:
标签: c# generics inheritance abstract-class