-1

誰かが私のコードを見て、作業コードのパスからどこに迷い込んだかを提案してください。

課題は次のとおりです。PersonalLoan という名前の抽象クラスとサブクラスを使用して、2 つの異なるタイプのローン (家と車) とそれぞれの月額を表示する UseLoan という名前のアプリケーションを作成します。各サブクラスには、費用決定の決定に使用される少なくとも 1 つのデータ入力項目をユーザーに要求した後、ローンの種類に基づいて月額費用を設定するコンストラクターが含まれています。(たとえば、自動車ローンの場合、車の年式やスポーツカーかどうかを尋ねることがあります。) PersonalLoan クラスに、関連するすべてのデータを含む String を構築する抽象 toString() メソッドを含めます。ユーザーに保険の種類を尋ね、適切なオブジェクトを作成して表示します。ファイルを PersonalLoan.java、CarLoan.java、homeLoan.java、および UseLoan.java として保存します。

コードをコンパイルすると、次のエラーが発生します

スレッド「メイン」の例外 java.lang.Error: 未解決のコンパイルの問題: タイプ CarLoan をインスタンス化できません タイプ CarLoan をインスタンス化できません タイプ CarLoan をインスタンス化できません タイプ CarLoan をインスタンス化できません タイプ HomeLoan をインスタンス化できません

at UseLoan.main(UseLoan.java:7)

これまでの私のコードは次のとおりです。

public abstract class PersonalLoan {

String title = new String();
double sportsPrice, suvPrice, hybridPrice, pickupPrice, price30, price15, price5;

public PersonalLoan(String t) {
    title = t;
}

public String getTitle() {
    return title;
}

public double getSportsPrice() {
    return sportsPrice;
}

public abstract void setSportsPrice();

public double getSUVPrice() {
    return suvPrice;
}

public abstract void setSUVPrice();

public double getHybridPrice() {
    return hybridPrice;
}

public abstract void setHybridPrice();

public double getPickupPrice() {
    return pickupPrice;
}

public abstract void setPickupPrice();

public double getPrice30() {
    return price30;
}

public abstract void setPrice30();

public double getPrice15() {
    return price15;
}

public abstract void setPrice15();

public double getPrice5() {
    return price5;
}

public abstract void setPrice5();
}

ここに 2 番目のサブクラス PersonalLoan があります。

public class CarLoan extends PersonalLoan {

public CarLoan(String title) {
    super(title);
    setSportsPrice();
    setSUVPrice();
    setHybridPrice();
    setPickupPrice();
}
 public void setSportsPrice() {
    super.sportsPrice = 1.99;
 }

public void setSUVPrice() {
    super.suvPrice = 2.99;
}

public void setHybridPrice() {
    super.hybridPrice = 3.99;
}

public void setPickupPrice() {
    super.pickupPrice = 4.99;
}
}

ここにクラスHomeLoanがあります:

public class HomeLoan extends PersonalLoan {

public HomeLoan(String title) {
    super(title);
    setPrice30();
    setPrice15();
    setPrice5();
}

public void setPrice30() {
    super.price30 = 1.99;
}

public void setPrice15() {
    super.price15 = 2.99;
}

public void setPrice5() {
    super.price5 = 3.99;
}
}

メイン クラス UseLoan は次のとおりです。

public class UseLoan {

 public static void main(String[] args) {
    PersonalLoan aPersonalLoan[] = new PersonalLoan[5];
    int x;
    aPersonalLoan[0] = new CarLoan("Sports Car");
    aPersonalLoan[1] = new CarLoan("SUV");
    aPersonalLoan[2] = new CarLoan("Hybrid");
    aPersonalLoan[3] = new CarLoan("Pickup Truck");
    aPersonalLoan[5] = new HomeLoan("30 Year Mortgage");

    for (x = 0; x < aPersonalLoan.length; ++x) {
        System.out.println("Book #" + (x + 1) + ": " + aPersonalLoan[x].getTitle() + " costs $" + aPersonalLoan[x].getSportsPrice());
        //System.out.println("Book #" + (x + 1) + ": " + aPersonalLoan[x].getTitle() + " costs $" + aPersonalLoan[x].getSUVPrice());
        //System.out.println("Book #" + (x + 1) + ": " + aPersonalLoan[x].getTitle() + " costs $" + aPersonalLoan[x].getHybridPrice());
        //System.out.println("Book #" + (x + 1) + ": " + aPersonalLoan[x].getTitle() + " costs $" + aPersonalLoan[x].getPickupPrice());
        //System.out.println("Book #" + (x + 1) + ": " + aPersonalLoan[x].getTitle() + " costs $" + aPersonalLoan[X].getPrice30());
        //System.out.println("Book #" + (x + 1) + ": " + aPersonalLoan[x].getTitle() + " costs $" + aPersonalLoan[X].getPrice15());
        //System.out.println("Book #" + (x + 1) + ": " + aPersonalLoan[x].getTitle() +          " costs $" + aPersonalLoan[X].getPrice5());
    }
}
}
4

2 に答える 2

1
Uncompilable source code - CarLoan is not abstract and does not override abstract method setPrice5() in PersonalLoan

コンパイラのエラー メッセージは明確です。クラスsetPrice5()内の実装を提供していません。PersonalLoan

setPrice5()クラスのメソッドと同様に、HomeLoanクラスにも setPrice5() メソッドを追加する必要がありますPersonalLoan

于 2013-08-13T18:42:43.530 に答える