接口实现和通用功能 - c#

我有以下要求,

将有2个(或更多)不同的类来执行相同类型的操作(以不同的方式)。因此,我决定创建一个接口。然后,用我的界面实现了这两个类。
现在,从另一个类中,我将使用接口类型的对象并调用函数。一切正常。
然后出现了一个新要求,即创建适用于两个类的通用功能。
我不想在两个类中定义相同的函数。和接口不允许功能定义。
首先,我认为抽象类会很有用。因为它允许函数定义和抽象函数。但是不能实例化抽象类,并且我还需要创建具有单独类类型的对象。

抱歉,我找不到定义问题的简单方法。感觉就像是spring框架提供的解决方案。但是我需要知道如何从Java / C#应用程序中实现这一点。

参考方案

听起来您想要一个实现通用功能的抽象类,但是对于不同的功能仍然有两个具体的类。您可能也可能不想保留界面。因此,选项为:

        Interface
            ^
            |
         Abstract
          class
            ^
           / \
   Concrete   Concrete 
   class 1    class 2

要不就

         Abstract
          class
            ^
           / \
   Concrete   Concrete 
   class 1    class 2

想要使用这些类的代码仅使用接口或抽象类。如何配置要使用的具体类取决于您的确切要求-但是大概您已经在较早版本中解决了这一问题。

Java:静态字段在内存中的哪个位置? - java

如果我们将对象存储在对象的静态字段中,那么JVM如何为它分配内存?它是否存在于“隐式”(不确定我是否使用正确的单词)类对象中?静态字段与对象字段有何不同? 参考方案 静态字段是类变量,并且在该类的所有实例之间共享。实例变量(或我认为您引用它们的对象字段)属于类的各个实例,并且不共享。至于它们存储在内存中的位置将根据JVM的实现而定,因此没有理由需要两个不同的…

子类可以创建抽象的超类类型的对象吗? - java

我不确定我是否正确问了这个问题,但我是在作业中给我的ClassA是抽象的B类扩展了A类那么在ClassB的主要方法中,我们有:ClassA obj =新的ClassB();这里发生了什么,这样做的目的是什么? 参考方案 您永远无法创建来自抽象类的对象。曾经期。在这里,被分配了对象的变量是抽象类型,但是变量所指的对象本身不是,也永远不可能是。引用和引用变量之间…

Java Puzzler-谁能解释这种行为? - java

abstract class AbstractBase { abstract void print(); AbstractBase() { // Note that this call will get mapped to the most derived class's method print(); } } class DerivedClass…

Java-非泛型类扩展了泛型类 - java

我想知道如何(如果可能)创建一个类,它是泛型类的特定类型。具体来说,我有一个实现所有必需方法的abstract class Stack<Type>,我想有一个class StackInteger,而StackInteger的实例也是Stack<Integer>的实例。我看到我可以做这样的事情:class StackInteger { …

Java-关于使用具有静态成员的类vs. - java

所以我有一个关于最佳实践的问题。基本上,我正在执行以下操作以简化访问不同类的成员的操作:class myClass1 { public static int var1; public static String var2; //... public static void method1() { //... } } 然后在其他类中,我只能使用myClass1…