aimnova.
DashboardMy LearningPaper MasteryStudy Plan

Aimnova site navigation

Stay in the loop

Get the latest study resources and updates

New features, study tips and exam insights — straight to your inbox.

IB Diploma

  • IB Past Papers
  • IB Study Notes
  • IB Question Bank
  • IB Mock Exams
  • IB Revision

IB Subjects

  • IB Math AA
  • IB Math AI
  • IB Economics
  • IB Business Management
  • IB Physics
  • IB Biology
  • View all IB subjects→

IB Past Papers

  • IB Math AA HL Past Papers
  • IB Math AA SL Past Papers
  • IB Math AI HL Past Papers
  • IB Math AI SL Past Papers
  • IB Economics HL Past Papers
  • IB Economics SL Past Papers
  • IB ESS Past Papers
  • View all past papers→

Study Resources

  • Study Notes
  • Question Bank
  • Mock Exams
  • Flashcards
  • Revision Guide
  • Exam Skills
  • Command Terms
  • Grade Calculator
  • Exam Timetable 2026

Aimnova

  • Features
  • Pricing
  • For Schools
  • For Parents
  • About Us
  • Blog
  • Contact
aimnova.

AI-powered study platform for smarter revision, past-paper analysis and examiner-style feedback.

TermsPrivacyCookies·© 2026 Aimnova. All rights reserved.8afc4e3

Aimnova is not affiliated with or endorsed by the International Baccalaureate Organization (IB).

NotesComputer Science HLTopic 7.2Polymorphism
Back to Computer Science HL Topics
7.2.24 min read

Polymorphism (Computer Science HL)

IB Computer Science • Unit 7

Your first topic is free to keep

Know exactly what to write for full marks

Practice with exam questions and get AI feedback that shows you the perfect answer — what examiners want to see.

Start Free

Contents

  • One call, many behaviours
  • The two forms
  • Why it matters
  • Exam-style question
The big idea: Polymorphism means the same call does the right thing for whatever object it is made on.

Calling area() on a list of shapes gives each shape's own calculation — and the calling code never asks what kind of shape it holds.
The loop never asks what it is holding: No if isinstance and no type check anywhere. The object itself decides which method runs, which is the whole point — and why a new shape needs no change to this loop.

Free preview

This is the free notes preview

You're reading the free notes. Aimnova Pro unlocks the full study experience — and you can try it with your first topic free to keep:

  • FlashcardsLock in vocabulary and key terms with spaced repetition.
  • Practice questionsAnswer exam-style questions and get instant AI marking.
  • Mock exams & past-paper vaultSit full mocks and see exactly how examiners award marks.
  • Personalised study planA daily plan built around your exam date and weak areas.
Start Studying Free Full access to Aimnova Pro · cancel anytime
OverridingOverloading
Also calledRun-time polymorphismCompile-time polymorphism
Same method name inParent and childOne class
Differs byWhich class the object isThe parameters supplied
DecidedWhen the program runsWhen it is compiled
ExampleCircle.area() against Rectangle.area()add(int, int) against add(double, double)
These are routinely confused: Overriding replaces a parent's method in a child — same signature, different class. Overloading defines several methods with the same name and different parameters in the same class.

An answer that swaps them loses the mark even when the example is right.

Learn what examiners really want

See exactly what to write to score full marks. Our AI shows you model answers and the key phrases examiners look for.

Try AI Feedback FreeYour first topic is free to keep • No credit card required

Code that does not change

  • A new subclass works with existing loops immediately
  • No if-chain to extend, so no chance of forgetting one
  • Adding behaviour without editing working code

One interface

  • Callers learn one method name, not one per type
  • The calling code reads as what it wants, not how each type does it

The alternative

  • Without it: a long if the type is Circle … otherwise if it is Rectangle chain
  • Every new type means editing every such chain
  • And every one you miss is a silent bug
Name what it replaces: The strongest polymorphism answer says what the code would look like without it: a type-checking if-chain that must be found and extended everywhere a new type is added.

How this is tested — you must show the same call behaving differently AND explain what it saves. It comes up two ways:

Paper 2 — working with code

  • Explain polymorphism, 3-4 marks
  • Distinguish overriding from overloading
  • State what a given call outputs

Paper 2 — the algorithmic-thinking question

  • Construct classes demonstrating it
  • Explain why it removes a type-checking chain
The classic trap: Describing inheritance and calling it polymorphism. Inheritance is sharing a method; polymorphism is the same call resolving differently per object. Show two different outputs from one line of code.

One unchanged call line reaching a different method as the object changes.

Interactive diagram

Explore the labelled diagram, charts and maps for this topic in full study mode.

Claim your free topic
IB-style questionExplain[5 marks]

A payments system handles CardPayment, BankTransfer and VoucherPayment, each processed differently. Explain how polymorphism lets one loop process a mixed list, and what it saves.

Model answer plan

See the mark-by-mark plan — for / against / judgement, with marking guidance — in study mode.

Claim your free topic

IB Exam Questions on Polymorphism

Practice with IB-style questions filtered to Topic 7.2.2. Get instant AI feedback on every answer.

Practice Topic 7.2.2 QuestionsBrowse All Computer Science HL Topics

How Polymorphism Appears in IB Exams

Examiners use specific command terms when asking about this topic. Here's what to expect:

Define

Give the precise meaning of key terms related to Polymorphism.

AO1
Describe

Give a detailed account of processes or features in Polymorphism.

AO2
Explain

Give reasons WHY — cause and effect within Polymorphism.

AO3
Evaluate

Weigh strengths AND limitations of approaches in Polymorphism.

AO3
Discuss

Present arguments FOR and AGAINST with a balanced conclusion.

AO3

See the full IB Command Terms guide →

Related Computer Science HL Topics

Continue learning with these related topics from the same unit:

7.1.1Fundamentals of OOP
7.1.2Designing classes
7.1.3Static vs non-static
7.1.4Classes and objects
View all Computer Science HL topics

Improve your exam technique

Command terms, paper structure, and mark-scheme tips for Computer Science HL

Previous
7.2.1Inheritance
Next
Abstraction7.2.3

Don’t just read about Polymorphism — practice it

Apply what you learned with real exam-style questions. AI feedback shows exactly how to improve your answers.

Practice NowView All Computer Science HL Topics