调用基类的方法

Posted

技术标签:

【中文标题】调用基类的方法【英文标题】:Calling a base class' method 【发布时间】:2011-08-30 17:48:59 【问题描述】:

在 C++ 中我会这样做

class A

public:
    virtual void stuff()
    
        //something
    
;

class B : public A
public:
    virtual void stuff()
    
        //something2
        A::stuff() //something
    
;

我将如何在 C# 中执行此操作? 我试过了

public void stuff()

    //something2
    A.stuff(); //something

但这不起作用

【问题讨论】:

【参考方案1】:

只是为了补充上面的答案, base.stuff() 有效,除非它是您尝试调用的构造函数,在这种情况下它被称为:

class A

public:
    public A()

;

class B : A

    public B() : base()
    

    
;

【讨论】:

【参考方案2】:

使用base。赞base.stuff();

【讨论】:

【参考方案3】:

base 是在 C# 中引用超类的关键字。使用:

base.stuff();

【讨论】:

谢谢,我会尽快接受这个答案:) 这像 Java 中的 super.stuff() 吗? @pratnala:是的。 选择base 的唯一目的是为了与众不同?似乎所有其他具有继承的语言都将其称为super... @ArtOfWarfare:我的意思是,没有任何线索,但我猜它与“this”与“self”(Python)没有什么不同......

以上是关于调用基类的方法的主要内容,如果未能解决你的问题,请参考以下文章

使用抽象基类的C ++“调用纯虚拟方法”[重复]

调用基类的重载方法[重复]

基类 派生类 类的继承与约束

从基类调用派生类的隐藏(非虚拟)方法

C++中,建立子类对象的时候,会调用基类的构造函数,

PySide.QtGui RuntimeError: '__init__' 对象基类的方法未调用...但它是