2015-05-05 97 views
-3

我在这两项家庭作业中做了一些工作,我需要知道我的答案是否正确。以下哪些陈述是正确的并且会编译?

public abstract class Account { 
    public Account() { . . . } 
} 

public class BankAccount extends Account { 
    private double balance;  
    public BankAccount (double amount) { 
     super(); 
     balance = amount; 
    } 
    } 

public class CheckingAccount extends BankAccount { 
     private String customerName;  
     public CheckingAccount (String name, double amount) { 
      <Missing Statement> 
     } 
     . . . 
} 

问题1.以下哪一项是对的CheckingAccount的构造可接受的替代?

balance = amount; 
customerName = name; 

II。

super(amount); 
customerName = name; 

三, super (name,amount);

可能:

我只只
II
I和II
II和III
I,II和III

问题2.下列哪声明是有效的?

一,Account acct = new BankAccount(10.00);
二, CheckingAccount acct = new BankAccount (10.00);
三, BankAccount acct = new CheckingAccount("Amy", 10.00);

可能:

I和II
II和III
我和III
I,II和III
无三个

我的答案:

  1. II和III
  2. I和II

您认为这些问题的答案是什么?

+5

我投票结束这个问题作为题外话,因为这不是CheckMyHomework.com。请通过[帮助]部分查看本网站的用途。 –

+1

我认为你可以通过添加你的理由来解释你为什么认为你的答案是好的,然后我们可以帮助你找到正确的道路或告诉你你是否很好 –

+0

@HovercraftFullOfEels我非常不赞同近距离投票(在最不理由)。硬件问题在这里很好。他已经给出了一个问题,表明了自己解决问题的努力,并询问它的答案是什么。对我来说似乎很好。 – amit

回答

1

问题1:

只有II是正确的。
由于未定义构造函数BankAccount(String,double),因此III不正确。请注意,BankAccount不知道您要填充的name字段是否存在。

问题2:

Ⅰ和Ⅲ是正确的
II是不正确becasue你无法分配BankingAccountCheckingAccount变量。 BankAccount不是CheckingAccount。如果您稍后尝试访问任何未在BankAccount中定义的方法,会发生什么情况?

III是正确的,因为CheckingAccountBankingAccount

+0

大家好,谢谢回复。我同意你们每一个人的观点,下一次,我将重新阐述我的问题,以便你们能够帮助我走向正确的道路。 –