假设我有类ChildA和ChildB,它们都扩展到类Parent。应该只有一个ChildA实例和多个ChildB实例。它们都扩展到Parent的原因是它们的一些变量和方法是相同的。最好的办法是什么?我曾尝试将Singleton用于ChildA,但由于它需要静态字段/方法,它似乎与其父类冲突。删除ChildA的父类可以解决这个问题,但它似乎不对,因为它的一些方法和变量与ChildB的方法和变量匹配。如有任何帮助,我们将不胜感激。
您得到的错误\冲突究竟是什么?
已经尝试了以下代码,没有问题:
using System;
public class Parent
{
protected int value;
}
public class ChildA: Parent
{
public static ChildA self = null;
public ChildA()
{
if (self == null)
self = this;
value = 10;
}
public int GetVal()
{
return(value);
}
}
public class ChildB: Parent
{
public ChildB()
{
value = 20;
}
public int GetVal()
{
return(value);
}
}
public class Program
{
public static void Main()
{
new ChildA();
ChildB obj = new ChildB();
Console.WriteLine("Value of Singleton ChildA: " + ChildA.self.GetVal());
Console.WriteLine("Value of ChildB: " + obj.GetVal());
}
}