-1

如何从基类访问孩子?

我的课程设置如下:

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(.....);
4

3 回答 3

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
于 2012-11-12T00:38:23.177 回答
0

在面向对象的编程中,父类永远不应该知道子类 AFAIK。将通过链接更新原因。

于 2012-11-12T00:38:08.810 回答
0

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

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

另外我相信你有一个错字——Savings应该继承自Bank,而不是继承自一些Parent

于 2012-11-12T00:34:11.953 回答