スーパー クラスと、Vehicle
それを拡張する 3 つのクラスがあります。さまざまなタイプの車両を含むリンクされたリストが必要です。使用しますBus
Car
Truck
list = new LinkedList<Vehicle>()
を使用するとうまくいくようSystem.out.println(list.get(2))
ですが、理由がわかりませんか?私は異なるクラスに実験toString()
関数として追加しましVehicle
たが、それでも拡張されたクラスのtoString()
. いつ父親の機能を使用し、いつ息子の機能を使用しますか?
異なるクラスはすべて同じ関数を持ちますが、プライベート変数は異なります。
クラスは次のとおりです。
public class Vehicle {
protected String maker;
protected int year;
private int fuel; //0 1 2 3 4
public Vehicle (String maker, int year) {
this.maker = maker;
this.year = year;
this.fuel = 0;
}
public void drive () {...}
public void fill () {...}
}
バス:
public class Bus extends Vehicle{
private int sits;
public Bus (String maker, int year, int sits) {
super (maker, year);
this.sits = sits;
}
public String toString () {...}
}
トラック:
public class Truck extends Vehicle{
private int weight;
public Truck (String maker, int year, int weight) {
super (maker, year);
this.weight = weight;
}
public String toString () {...}
}
車:
public class Car extends Vehicle{
private float volume;
public Car (String maker, int year, float volume) {
super (maker, year);
this.volume = volume;
}
public String toString () {...}
}