Как конвертировать код из kotlin в java?
Как провести данную конвертацию? Пробовал Android Studio и II - там не получается выполнить данное действие. Вот код:
internal abstract class Transport {
protected var movementType: String? = null
protected var cargoType: String? = null
abstract fun deliverCargo()
}
internal abstract class TransportFactory {
abstract fun createTransport(): Transport
}
internal class ShipFactory : TransportFactory() {
override fun createTransport(): Transport {
return Ship()
}
}
internal class Ship : Transport() {
init {
movementType = "плывет"
cargoType = "грузовой"
}
override fun deliverCargo() {
println("Грузовой корабль доставляет груз морским путем")
}
}
internal class PlaneFactory : TransportFactory() {
override fun createTransport(): Transport {
return Plane()
}
}
internal class Plane : Transport() {
init {
movementType = "летает"
cargoType = "пассажирский"
}
override fun deliverCargo() {
println("Пассажирский самолет доставляет пассажиров воздушным путем")
}
}
internal class TruckFactory : TransportFactory() {
override fun createTransport(): Transport {
return Truck()
}
}
internal class Truck : Transport() {
init {
movementType = "едет"
cargoType = "грузовой"
}
override fun deliverCargo() {
println("Грузовая машина доставляет грузы по дороге")
}
}
object Main {
@JvmStatic
fun main(args: Array<String>) {
val shipFactory: TransportFactory = ShipFactory()
val ship = shipFactory.createTransport()
ship.deliverCargo()
val planeFactory: TransportFactory = PlaneFactory()
val plane = planeFactory.createTransport()
plane.deliverCargo()
val truckFactory: TransportFactory = TruckFactory()
val truck = truckFactory.createTransport()
truck.deliverCargo()
}
}
Ответы (1 шт):
Автор решения: Nowhere Man
→ Ссылка
Возможный вариант "буквальной" конвертации:
abstract class Transport {
protected String movementType = null;
protected String cargoType = null;
public abstract void deliverCargo();
}
abstract class TransportFactory {
public abstract Transport createTransport();
}
class ShipFactory extends TransportFactory {
@Override public Transport createTransport() {
return new Ship();
}
}
class Ship extends Transport {
{
movementType = "плывет";
cargoType = "грузовой";
}
@Override public void deliverCargo() {
System.out.println("Грузовой корабль доставляет груз морским путем");
}
}
class PlaneFactory extends TransportFactory {
@Override public Transport createTransport() {
return new Plane();
}
}
class Plane extends Transport {
{
movementType = "летает";
cargoType = "пассажирский";
}
@Override public void deliverCargo() {
System.out.println("Пассажирский самолет доставляет пассажиров воздушным путем");
}
}
class TruckFactory extends TransportFactory {
@Override public Transport createTransport() {
return new Truck();
}
}
class Truck extends Transport {
{
movementType = "едет";
cargoType = "грузовой";
}
@Override public void deliverCargo() {
System.out.println("Грузовая машина доставляет грузы по дороге");
}
}
public class Main {
public static void main(String args[]) {
var shipFactory = new ShipFactory();
var ship = shipFactory.createTransport();
ship.deliverCargo();
var planeFactory = new PlaneFactory();
var plane = planeFactory.createTransport();
plane.deliverCargo();
var truckFactory = new TruckFactory();
var truck = truckFactory.createTransport();
truck.deliverCargo();
}
}