如何从基类访问子项?
我的课程设置如下:
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(.....);
答案 0 :(得分:2)
创建将同时包含Checkings
和Savings
实例的类。
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。将更新链接,了解原因。