防止静态成员的继承

本文关键字:继承 静态成员 | 更新日期: 2023-09-27 18:17:55

Base:

public abstract class systemClient : IDisposable
{
    public static List<systemClient> Collection = new List<systemClient>();
    [...]
}

派生类

public class station : systemClient
{
    [...]
}

在此设置中,我可以访问station.Collection.

问题是:有没有办法隐藏 station.Collection

防止静态成员的继承

你不能。通过将inhClass创建为baseClass inhClass的子类,必须提供baseClass提供的一切。否则baseClass x = new inhClass()无效。

在此特定情况下,尽管已将方法设置为静态,但这意味着它实际上没有自己的方法副本。 inhClass只是访问baseClass中的静态。

我同意Tim B的回答。您不能简单地"忽略"您继承的类的某些方法或属性。但是,您可以做的是实现一个接口,该接口可以完成您想要的工作。如需进一步阅读,请查看此处。