Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- interface IVehicle {
- start(type: string): string;
- }
- interface ITrunk {
- openTrunk(): void
- }
- interface IWindow {
- openWindow(): void
- }
- class Vehicle implements IVehicle {
- private color: string;
- constructor(color: string) {
- this.color = color;
- }
- start(type: string) {
- return 'The ' + this.color + ' ' + type + ' started';
- }
- }
- class Car extends Vehicle {
- constructor(color: string) {
- super(color);
- }
- start() {
- return super.start('car');
- }
- }
- class Sedan extends Car implements ITrunk, IWindow {
- constructor(color: string) {
- super(color);
- }
- start() {
- return super.start() + ' and it is a Sedan';
- }
- openTrunk() {
- console.log('Trunk is open');
- }
- openWindow() {
- console.log('Window is open');
- }
- }
- class Truck extends Vehicle {
- constructor(color: string) {
- super(color);
- }
- start() {
- return super.start('truck');
- }
- }
- var car = new Car('green');
- var sedan = new Sedan('red');
- sedan.openTrunk();
- sedan.openWindow();
- var truck = new Truck('blue');
- console.log(car.start());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement