segdrrdhgr

by trisna dev

JavaScript

abstract class Transport {
  abstract createVehicle(): Vehicle;
}

class CarTransport extends Transport {
  createVehicle(): Vehicle {
    return new Car();
  }
}

class BikeTransport extends Transport {
  createVehicle(): Vehicle {
    return new Bike();
  }
}

interface Vehicle {
  drive(): void;
}

class Car implements Vehicle {
  drive(): void {
    console.log('Driving a car');
  }
}

class Bike implements Vehicle {
  drive(): void {
    console.log('Riding a bike');
  }
}

// Penggunaan
const transport: Transport = new CarTransport();
const vehicle = transport.createVehicle();
vehicle.drive(); // Output: Driving a car