c# - 在这个例子中继承是如何工作的?
问题描述
以下代码的作用是尝试将添加到基础堆栈的最小值存储在另一个堆栈中,在我的示例中调用该堆栈s2
(当弹出该最小值时,它也会从 中弹出Stack s2
),什么我不明白base.Push(value);
在push
方法和方法base.Pop();
中是如何pop
工作的?
我的超类是Stack<int>
这意味着我可以使用它的方法,包括push
andpop
但在我的示例中,如果我在 an 上使用我的push
方法Integer
,它将调用base.Push
on that Integer
,但是该base.Push
方法在哪里添加,Integer
因为我创建和初始化的唯一堆栈是Stack s2
class StackWithMin2 : Stack<int> {
Stack<int> s2;
public StackWithMin2() {
s2 = new Stack<int>();
}
public void push(int value) {
if (value<=min()) {
s2.Push(value);
}
base.Push(value);
}
public int pop() {
int value = base.Pop();
if (value==min() {
s2.Pop();
}
return value;
}
public int min() {
if (s2.Count == 0)
{
return int.MaxValue;
}
else {
return s2.Peek();
}
}
}
解决方案
推荐阅读
- python - 试图在 Pygame 简单的 2D 平台游戏中使屏幕中心成为玩家
- azure-devops - ADO 计划预览显示了太多不再需要的过去冲刺
- kubernetes - 如何编辑 GKE 自动扩缩器设置?
- python - Python 错误消息:TypeError:只能将列表(而不是“str”)连接到列表
- python - 将 unique_id 索引稀疏特征的数据帧拆分为百分比测试/训练
- android - Google TalkBack 服务如何在按钮/文本/图像/等上绘制矩形?
- ios - SwiftUI ScrollView 动画滚动有时很慢
- testing - 请求正文的 json 中的 SoapUi 属性扩展不起作用
- android - HERE-sdk.aar 缺少 RoutingEngine 类
- apache-kafka - 可能由于与 ktable 相关的状态存储而导致内存不足异常