Typescript - Automobile Polymorphism

TypeScript - JavaScript's Superset (Article) (Program)

141

Typescript - Automobile Polymorphism

Create a class "Automobile" that has two protected properties and a method:

⚫ fuelType and price

⚫ initialize the properties using constructor

⚫ printinfo(): displays "I am automobile" in console

⚫ Now create another class "Car" which extends the above class and has two functions

⚫ constructor: this initializes "fuelType" and "price" by invoking the base class constructor

⚫ printinfo: displays Fuel type and price of that object in a format specified below //overriding function


Fuel Type: <fuelType> Price: <price>


Sample Output:

I am automobile Fuel Type: Petrol Price: 100


Note: Inputs are passed in the constructor of the class Car

Note: Even though you got the exact output, the test cases will fail if you do not use the typescript OOPs concepts as mentioned in the problem statement.

Program:

class Automobile {
  protected fuelType: string;
  protected price: number;

  constructor(fuelType: string, price: number) {
    this.fuelType = fuelType;
    this.price = price;
  }

  printInfo(): void {
    console.log("I am automobile");
  }
}

class Car extends Automobile {
  constructor(fuelType: string, price: number) {
    super(fuelType, price);
  }

  // Overriding the printInfo method from the base class
  printInfo(): void {
    super.printInfo(); // Call the base class method
    console.log(`Fuel Type: ${this.fuelType}`);
    console.log(`Price: ${this.price}`);
  }
}

// Example usage:
const car = new Car("Petrol", 100);

// Calling the overridden method
car.printInfo();

Output:

// Example usage:
const car = new Car("Petrol", 100);

// Calling the overridden method
car.printInfo();