从BaseClass / Link Base访问多个孩子到孩子

时间:2012-11-12 00:31:37

标签: c# .net

如何从基类访问子项?

我的课程设置如下:

abstract class Bank
{
    public Bank(int One, int Two)
    {
    }
}

public class Checking : Bank
{
    public Checking(int One, int Two) : base(One, Two)
    {
    }
}

public class Savings : Parent
{
    public Savings(int One, int Two) : base(One, Two)
    {
    }
}

如何让Bank类在需要时实例化检查和节省?

我想做类似的事情:

Bank B = new Savings(....);
B = new Checkings(....);

B.Savings.Foo(......);
B.Checkings.Foo(.....);

3 个答案:

答案 0 :(得分:2)

创建将同时包含CheckingsSavings实例的类。

public class BankTuple
{
    public BankTuple(int one, int two)
    {
        Checkings = new Checkings(one, two);
        Savings = new Savings(one, two);
    }

    public Checkings Checkings { get; private set; }

    public Savings Savings { get; private set; }
}

然后使用它:

var tuple = new BankTuple(1, 2);
// tuple.Checkings
// tuple.Savings

答案 1 :(得分:0)

变量B只能引用内存中的一个对象。如果需要保持对多个对象的引用,请考虑使用集合:

List<B> banks = new List<B>();
banks.Add(new Savings());
banks.Add(new Checkings());

另外我相信你有一个拼写错误 - Savings应该继承Bank,而不是某些Parent

答案 2 :(得分:0)

在面向对象编程中,父类应该从不了解子AFAIK。将更新链接,了解原因。