Bird
Raised Fist0
Typescriptprogramming~5 mins

Abstract methods in Typescript - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is an abstract method in TypeScript?
An abstract method is a method declared in an abstract class without an implementation. Subclasses must provide their own implementation of this method.
Click to reveal answer
beginner
Can you create an instance of an abstract class that contains abstract methods?
No, you cannot create an instance of an abstract class. Abstract classes are meant to be extended by other classes that implement the abstract methods.
Click to reveal answer
beginner
How do you declare an abstract method in TypeScript?
Use the keyword abstract before the method name and do not provide a method body. For example: abstract greet(): void;
Click to reveal answer
intermediate
Why use abstract methods in a class?
Abstract methods enforce that subclasses implement specific methods, ensuring a consistent interface while allowing different behaviors in each subclass.
Click to reveal answer
intermediate
What happens if a subclass does not implement all abstract methods from its abstract superclass?
The TypeScript compiler will give an error because the subclass must implement all abstract methods or be declared abstract itself.
Click to reveal answer
Which keyword is used to declare an abstract method in TypeScript?
Aoverride
Babstract
Cvirtual
Dinterface
Can you instantiate an abstract class directly?
ANo, never
BOnly if it has a constructor
COnly if it has no abstract methods
DYes, always
What must a subclass do if it extends an abstract class with abstract methods?
ARemove the abstract keyword
BIgnore abstract methods
CDeclare itself abstract
DImplement all abstract methods
Which of the following is true about abstract methods?
AThey have no implementation in the abstract class
BThey can be called directly on the abstract class
CThey are optional to implement in subclasses
DThey are private methods
What error occurs if a subclass does not implement an abstract method?
ASyntax error
BRuntime error
CCompiler error
DNo error
Explain what an abstract method is and why it is useful in TypeScript classes.
Think about how abstract methods guide subclasses.
You got /4 concepts.
    Describe the rules for subclassing an abstract class with abstract methods in TypeScript.
    Focus on what the subclass must do with abstract methods.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is true about abstract methods in TypeScript?
      easy
      A. They have no body and must be implemented by subclasses.
      B. They can be called directly without implementation.
      C. They can only be used in interfaces, not classes.
      D. They are optional to implement in child classes.

      Solution

      1. Step 1: Understand abstract method definition

        Abstract methods declare a method signature without a body inside an abstract class.
      2. Step 2: Check subclass requirements

        Child classes must provide an implementation for all abstract methods.
      3. Final Answer:

        They have no body and must be implemented by subclasses. -> Option A
      4. Quick Check:

        Abstract methods require implementation [OK]
      Hint: Abstract methods have no body and force subclass implementation [OK]
      Common Mistakes:
      • Thinking abstract methods can be called directly
      • Confusing abstract methods with interface methods
      • Assuming abstract methods are optional to implement
      2. Which of the following is the correct syntax to declare an abstract method in a TypeScript abstract class?
      easy
      A. abstract myMethod() { }
      B. abstract myMethod(): void;
      C. myMethod(): void;
      D. abstract function myMethod() {}

      Solution

      1. Step 1: Recall abstract method syntax

        Abstract methods are declared with the abstract keyword and no body, ending with a semicolon.
      2. Step 2: Analyze options

        abstract myMethod(): void; matches the correct syntax. Syntaxes that incorrectly include a body are invalid. myMethod(): void; lacks the abstract keyword.
      3. Final Answer:

        abstract myMethod(): void; -> Option B
      4. Quick Check:

        Abstract method syntax = abstract myMethod(): void; [OK]
      Hint: Abstract methods have no body and end with a semicolon [OK]
      Common Mistakes:
      • Adding method body to abstract methods
      • Omitting the abstract keyword
      • Using function keyword inside class
      3. What will be the output of the following TypeScript code?
      abstract class Animal {
        abstract makeSound(): string;
      }
      
      class Dog extends Animal {
        makeSound(): string {
          return "Woof!";
        }
      }
      
      const dog = new Dog();
      console.log(dog.makeSound());
      medium
      A. "Woof!"
      B. Error: Cannot instantiate abstract class
      C. undefined
      D. Error: makeSound method not implemented

      Solution

      1. Step 1: Understand class hierarchy

        Animal is abstract with an abstract method makeSound. Dog extends Animal and implements makeSound returning "Woof!".
      2. Step 2: Check instantiation and method call

        Dog is instantiated (allowed), and calling makeSound() returns "Woof!".
      3. Final Answer:

        "Woof!" -> Option A
      4. Quick Check:

        Implemented abstract method returns "Woof!" [OK]
      Hint: Abstract class can't instantiate, but subclass can [OK]
      Common Mistakes:
      • Trying to instantiate abstract class directly
      • Forgetting to implement abstract method
      • Expecting undefined instead of returned string
      4. Identify the error in the following TypeScript code:
      abstract class Vehicle {
        abstract startEngine(): void;
      }
      
      class Car extends Vehicle {
        startEngine() {
          console.log("Engine started");
        }
      }
      
      const myCar = new Vehicle();
      medium
      A. startEngine method must be static.
      B. Missing return type in startEngine method.
      C. Cannot instantiate abstract class Vehicle.
      D. Car class must be abstract.

      Solution

      1. Step 1: Check instantiation of abstract class

        The code tries to create an instance of Vehicle, which is abstract and cannot be instantiated.
      2. Step 2: Verify method implementation and class declarations

        The Car class correctly implements startEngine. The method return type is optional in implementation. No need for static method or abstract Car class.
      3. Final Answer:

        Cannot instantiate abstract class Vehicle. -> Option C
      4. Quick Check:

        Abstract classes cannot be instantiated [OK]
      Hint: Abstract classes cannot be instantiated directly [OK]
      Common Mistakes:
      • Trying to create instance of abstract class
      • Thinking method must be static
      • Confusing missing return type as error
      5. Given the abstract class below, which implementation correctly uses abstract methods to calculate area?
      abstract class Shape {
        abstract area(): number;
      }
      
      // Choose the correct subclass implementation:
      hard
      A. class Square extends Shape { constructor(private side: number) { super(); } area(): string { return `${this.side}`; } }
      B. class Square extends Shape { constructor(private side: number) {} area() { return side * side; } }
      C. class Square extends Shape { area(): number { return 0; } }
      D. class Square extends Shape { constructor(private side: number) { super(); } area(): number { return this.side * this.side; } }

      Solution

      1. Step 1: Check constructor and super call

        class Square extends Shape { constructor(private side: number) { super(); } area(): number { return this.side * this.side; } } correctly calls super() in constructor, required for subclass of abstract class.
      2. Step 2: Verify method signature and implementation

        class Square extends Shape { constructor(private side: number) { super(); } area(): number { return this.side * this.side; } } implements area() returning a number, matching abstract method signature. Other implementations have errors: one misses super() and uses an undefined variable, one returns 0 ignoring side, one returns string instead of number.
      3. Final Answer:

        class Square extends Shape { constructor(private side: number) { super(); } area(): number { return this.side * this.side; } } -> Option D
      4. Quick Check:

        Correct subclass calls super and matches method signature [OK]
      Hint: Subclass must call super() and match abstract method signature [OK]
      Common Mistakes:
      • Omitting super() call in constructor
      • Mismatching return types in method
      • Using undefined variables inside method
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard