私はそれを実装する2つのクラスと2つのメソッドを持っています。1つはパラメータとしてファーストクラスのオブジェクトを取得し、もう1つはメソッドを取得します。私はオブジェクトの両方の型を含むベクトルを持っている、私は各ベクトル要素がどのような型がわからないので、型をキャストすることなく、各要素に3番目の関数のメソッドを使用したい。どうやってやるの?これはコードです:このメソッドは引数には適用されません
public interface Transport {
}
public class Car implements Transport {
}
public class Bike implements Transport {
}
public class Operation {
public void operation(Car c) {
System.out.println("1");
}
public void operation(Bike b) {
System.out.println("2");
}
そしてメインに、私はこれを持っている:、このコードは、私がやったことの簡易版である
Transport[] t = new Transport[3];
t[0] = new Car();
t[1] = new Bike();
t[2] = new Car();
Operation op = new Operation();
op.operation(t[0]); // here I get the error - method not applicable for arguments
読みやすいようにするためには、だけでなく、そこにあります3つの要素があり、それらはどの入力が得られるかに基づいてforループで作成されます。
Transportクラスにoperation()メソッドを置き、CarおよびBikeでオーバーライドします。これが多形性についてです: 't [0] .operation()'。名前を 'move()'に変更し、トランスポートインターフェースの名前を 'Vehicle 'に変更してその概念を理解してください。 –