我正在用 C# 做作业,其中我正在实现 Account 的抽象类,然后我从 Account 派生了两个类,分别命名为 Saving Account 和 Checking Account,并覆盖了派生类中的一些方法。现在我的问题陈述说
仅通过 Account 的引用实例化 SavingAccount 和 CheckingAccount
现在我无法编写此代码,因为我知道简单的对象创建,但我不知道如何通过对象的引用来创建对象。请告诉我一些语法。谢谢
我正在用 C# 做作业,其中我正在实现 Account 的抽象类,然后我从 Account 派生了两个类,分别命名为 Saving Account 和 Checking Account,并覆盖了派生类中的一些方法。现在我的问题陈述说
仅通过 Account 的引用实例化 SavingAccount 和 CheckingAccount
现在我无法编写此代码,因为我知道简单的对象创建,但我不知道如何通过对象的引用来创建对象。请告诉我一些语法。谢谢
这个想法是标识符可以是基本类型:
SomeBaseType identifier;
但是当你实例化它(或新建一个实例)时,你可以使用任何派生类型
例如
Account account = new SavingsAccount();
编辑我想补充一点,这就是 OOP 变得生动的地方(阅读:“变得非常有趣!”)。现在您可以设计一个interface
或合同(例如与一个Account
类) - 并针对一个设计进行编程。但是您可能实际使用了不同的帐户类型。使用我给出的示例,account
将继续看起来像一个Account
. 使用您的变量进行编码时,任何“新”方法或功能SavingsAccount
都不会立即可见。account
不过没关系!您不希望您的代码专门针对SavingsAccount
(在大多数情况下)量身定制,而是希望设计一个灵活Account
的,可以代表任何Account
.
如果您想从已有的 Account 实例创建 SavingAccount 或 CheckingAccount,则可以将其转换as
为这些帐户之一。像这样——
int _accountID = 356;
Account _account = new SavingsAccount(_accountID);
// now to create a SavingAccount or CheckingAccount from _account
SavingAccount _savingAccount = _account as SavingAccount;