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