哪些陈述是正确的并且会编译?

时间:2015-05-05 21:35:49

标签: java oop

我在这两项家庭作业上做了一些工作,我需要知道我的答案是否正确。

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;
     

III。 super (name,amount);

     

可能:

     

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

     

问题2.以下哪项声明有效?

     

予。 Account acct = new BankAccount(10.00);
  II。 CheckingAccount acct = new BankAccount (10.00);
  III。 BankAccount acct = new CheckingAccount("Amy", 10.00);

     

可能的:

     

I和II
  II和III
  我和III
  I,II和III
  三者中没有一个

我的回答:

  1. II和III
  2. I和II
  3. 您认为这些问题的答案是什么?

1 个答案:

答案 0 :(得分:1)

问题1:

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

问题2:

我和III是正确的
由于您无法将BankingAccount分配到CheckingAccount变量,因此II不正确。 BankAccount不是CheckingAccount。如果您以后尝试访问BankAccount中未定义的任何方法会发生什么?

III是正确的,因为CheckingAccountBankingAccount