当前位置: 首页 > 编程笔记 >

C#扩展抽象基类

空英逸
2023-03-14
本文向大家介绍C#扩展抽象基类,包括了C#扩展抽象基类的使用技巧和注意事项,需要的朋友参考一下

示例

与接口(可以描述为实现合同)不同,抽象类充当扩展的合同。

抽象类无法实例化,必须对其进行扩展,然后可以实例化生成的类(或派生类)。

抽象类用于提供通用实现

public abstract class Car
{
    public void HonkHorn() {
        // 鸣喇叭的实现
    }
}

public class Mustang : Car
{
    // 只需扩展抽象类Car,Mustang就可以HonkHorn()
    // 如果Car是接口,则需要包括HonkHorn方法
    // 在实现它的每个类中。
}

上面的示例显示了实现Car的任何扩展类如何自动接收HonkHorn方法。这意味着任何开发新汽车的开发人员都无需担心它将如何鸣笛。

 类似资料:
  • 问题内容: 我之前了解到抽象类可以扩展具体类。尽管我没从JAVA设计师那里看到原因,但是没关系。我还了解到,扩展具体类的抽象类可以使重写的方法抽象。为什么?您可以提供有用的用例吗?我正在尝试学习设计模式,我不想错过任何东西。 这是示例: 问题答案: 如果我有一组想要默认实现的类(以便它们可以从扩展),并且想要强制提供自己的实现(在这种情况下使其抽象为子类会强制执行此操作。) 当然,此示例中的另一种

  • 问题内容: 有这样的事情: 抽象类: 和扩展器: 我想要的是扩展,因为如果不处理它,然后尝试在中处理它。例如add- 但同时让类处理默认值,例如。 这是完全错误的方法吗? 到目前为止,我所做的就是添加一个接口。通常: 在课堂上: 在课堂上: 这看起来像是可用的设计吗? 并且,主要问题: 有没有什么好办法扩展该类,以便可以使用与in 中相同的切换方法?我想知道的是,有没有一个更好的设计,第二个是是否

  • 我正在用Java构建一个库管理应用程序。 我有一个名为 的抽象类。它有一个称为 的抽象方法。 有一个名为< code>Newspaper的子类,它当然实现了< code>equals,其签名与< code>equals在< code>Material中的签名完全相同: Java无法解析< code > elementoacomparer 的任何方法。它们都存在于< code >报纸中,该报纸确实扩

  • 在我们的软件,我们使用spring Java配置。我们有一个设置,其中一个配置扩展了一个抽象配置。请看一下这个测试案例: 其思想是,覆盖了并且在创建的ApplicationContext中只有一个类型的bean位于名称之下。 结果是: 所以它说,有两个bean(两个实例--每个名称一个)--甚至更令人吃惊的是:创建这两个bean都使用了相同的方法()。 这种行为在我们看来很奇怪:我们希望sprin

  • 问题内容: 我正在查看Java 8接口中的新虚拟扩展方法: 我的目的是允许接口随着时间的推移以及多重继承的发展而演变,但是在我看来,它们看上去非常像抽象类。 如果您要进行新工作,则是使用抽象类而不是扩展方法来为“接口”提供实现,或者这两种方法在概念上是否等效? 问题答案: 这种构造的主要目的是保持向后兼容性。在Java语言中添加闭包是一个重大的更改,需要对其进行更新以充分利用此功能。例如,在Jav

  • 我试图使用Javascript函数扩展Java中的抽象类。例如,test/A.java: 和<代码>测试。js: 计算上述行会导致错误