Home / Programs / Typescript - Automobile Polymorphism
Programming Example

Typescript - Automobile Polymorphism

👁 156 Views
💻 Practical Program
📘 Step by Step Learning

Information & Algorithm

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: 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 Code

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();

How to learn from this program

First read the algorithm, then study the program code line by line. After that, compare the code with the output and finally go through the explanation. This approach helps learners understand both the logic and the implementation properly.