c# - 限制子类继承基类的某些方法

标签 c# overriding class-design

using System;

public class Base
{
    public Base()
    {
    }

    public void M1()
    {
    }

    public void M2()
    {
    }

    public void M3()
    {
    }
}

public class Derived : Base
{
    //this class should get only method 1
}

public class SecondDerived : Base
{
    //this class should get only method 2 and method3
}

需求是:基类包含M1M2M3这3个方法。
派生类应仅继承 M1,SecondDerived 应仅继承 M2M3

如何做到这一点?

最佳答案

您不能有选择地继承这样的方法。派生类自动继承基类的所有公共(public)方法。我建议您将 Base 类分成两个类:

public class Base1
{
    public Base1()
    {
    }

    public void M1()
    {
    }
}

public class Base2
{
    public void M2()
    {        
    }

    public void M3()
    {       
    }
}

public class First : Base1

public class Second : Base2

关于c# - 限制子类继承基类的某些方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8940379/

相关文章:

c# - 使用 gmail 地址通过 Postal 发送电子邮件

c# - 如何遍历 WPF 工具包 Datagrid 的行

c# - 在 ASP.NET 代码隐藏中声明一个全局变量

c++ - 编译器向空类声明添加了什么?

c# - 如何在 C# 线程中使用等待句柄?

c# - 部署优化失败,如何修复?

ios - Objective-C ios : override implementation method of class

c++ - 在派生中使用额外的默认参数重载基类方法

java - 覆盖接口(interface)?

c# - 如何将 DataTable 从类传递到页面