Skip to content
ExamSpine

B3.2 Fundamentals of OOP for multiple classes: notes and practice

B3.2 (HL only) covers classes working together: inheritance, polymorphism, overriding and overloading, abstract classes and interfaces, composition and aggregation, and common design patterns.

Paper 2HL only1 practice question

What you need to know

Our summary of the topic in our own words, not the IB guide. Points marked HL are for Higher Level only.

  • Explain inheritance and the relationship between a superclass and a subclassHL
  • Write code that defines a subclass and reuses superclass behaviourHL
  • Design a class hierarchy for a described domain and justify where each behaviour belongsHL
  • Explain polymorphism and how the same call can behave differently by object typeHL
  • Write code that overrides a superclass methodHL
  • Distinguish overriding from overloadingHL
  • Explain abstraction in an object oriented design and what an abstract class or interface is forHL
  • Decide whether a given concept should be an abstract class, an interface or a concrete classHL
  • Distinguish composition from aggregation and from inheritanceHL
  • Model a has-a relationship between classes and show it on a UML diagramHL
  • Describe common design patterns and the problem each one solvesHL
  • Recognise where a design pattern would improve a described designHL

Practice questions

Original questions written for the 2027 course, marked as you go. Easiest first.

Exam tips for B3.2

  • Overriding replaces a method in a subclass, while overloading reuses a name with different parameters.
  • Use "is-a" for inheritance and "has-a" for composition or aggregation when justifying a design.
  • Show relationships on UML diagrams with the right arrows and multiplicities.

Updated 24 October 2026. Topic codes are used as labels. Everything on this page is written by ExamSpine and is not endorsed by the IB.