【问题标题】:Instantiating subclasses which is the right way to do [duplicate]实例化子类是正确的方法[重复]
【发布时间】:2021-03-08 02:34:17
【问题描述】:

我有一个 BankAccount 类,它是超类,SavingsAccount 和 CheckingAccounts 作为子类/派生类。非常简单的类。

前 3 行代码与后 3 行代码有什么区别。

前 3 行代码"

 BankAccount b = new BankAccount(100);
 BankAccount s = new SavingsAccount(100);
 BankAccount c = new CheckingAccount(200);

接下来的 3 行代码”

 BankAccount  b = new BankAccount(100);
 SavingsAccounts s= new SavingsAccount(100);
 CheckingAccount c = new CheckingAccount(200);

【问题讨论】:

    标签: java


    【解决方案1】:

    没有“正确”的方法。你想用这些东西做什么?您是否对它们都是帐户这一事实感兴趣,或者您是否需要知道它们是什么类型的帐户?

    一般规则是“不要假设超出你的需要”。如果下面的代码不需要知道它们有区别,就将变量声明为BankAccount。

    【讨论】:

    • 我正在准备考试。问题是在以下代码行之后可以访问哪些方法。即使,在 = 符号的右侧,我说的是 Savingsaccount 和 checksaccount,它只是创建银行帐户对象。我不明白。银行账户 b = 新银行账户(100); BankAccount s = new SavingsAccount(100); BankAccount c = new CheckingAccount(200);
    • 我认为关于“编程到接口”的链接(上面给出)是最相关的。抛开你的代码,你会经常看到List<Thing> myList = new ArrayList<>()。为什么会这样写?首先,随后的代码将完全适用于任何类型的 List,因此坚持给它专门提供一个 ArrayList 会过于严格。但另一方面,程序员认为 ArrayList 是实现的一个不错的选择(它相当紧凑,足够高效,除非你想从中间删除大量内容,或者其他一些问题)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多