Inheritance (OOP) (OCR A Level Computer Science)

Revision Note

Craig Godbold

Written by: Craig Godbold

Reviewed by: James Woodhouse

Inheritance (OOP)

What is Inheritance?

  • Inheritance is a key concept in object-oriented programming (OOP) that allows a class to inherit the properties and behaviours (methods and attributes) of another class

  • Inheritance promotes code reuse by allowing derived classes to inherit and utilise the existing code from the base class. This avoids duplicating code and promotes better organization and maintainability

  • Inheritance establishes an "IS-A" relationship between the base class and the derived class

  • For example, if you have a base class called Vehicle and a derived class called Car, you can say that "a Car is a Vehicle."

  • The car class inherits the properties and behaviours associated with being a vehicle

  • Inheritance involves two main entities:

    • The base class (also known as the parent class or superclass) and the derived class (also known as the child class or subclass)

    • The derived class inherits the characteristics of the base class, meaning it can access and use the methods and attributes defined in the base class

Example of a base class and derived classes

Example of a base class and derived classes

  • Base Class: The base class serves as the blueprint or template from which the derived class inherits 

    • It defines common properties and behaviours that can be shared among multiple derived classes

  • Derived Class: The derived class inherits the attributes and methods of the base class

    • It can add additional attributes and methods

  • If a car object was to be created, it may have the following attributes:

    • Manufacturer - The company that makes the car

    • Make -The model of the car

    • Cost – The price of the car to purchase

    • IsInsured – Whether or not the car is insured

    • EngineCapacity – The size of the engine for the car

  • It may also have access to the following methods:

    • TurnEngineOn() – To start the car engine

    • TurnEngineOff() – To turn off the car engine

    • SteerLeft() – To turn the car to the left

    • SteerRight() – To steer the car to the left

    • GearChange() – To change the gear of the car

    • UnlockDoors() – To unlock the doors to the car

  • The above methods are only a select few and there could be many more added for extra functionality

  • In the following code, the super keyword is used in inheritance to refer to the superclass (Base class: Vehicles) and access its members (methods, attributes, or constructors) from within the subclass (Derived Class: Cars)

Worked Example

The classes office and house inherit from building.
Describe what is meant by inheritance with reference to these classes.

 [2]

How to answer this question:

  • 1 mark per bullet up to a maximum of 2 marks, e.g:

    • When the child/derived/subclass class office/house takes on attributes/methods…

    •  … from building / parent/base/superclass/ class

Answer:

 Example answer to get full marks:

When the derived classes "office" and "house" inherit attributes/methods [1] from the "building" base class, they gain access to the properties and behaviours defined in the "building" class. [1]

Last updated:

You've read 0 of your 5 free revision notes this week

Sign up now. It’s free!

Join the 100,000+ Students that ❤️ Save My Exams

the (exam) results speak for themselves:

Did this page help you?

Craig Godbold

Author: Craig Godbold

Expertise: Computer Science

Craig is an experienced educator with 14 years of teaching experience in the UK, USA, and China, He has held a variety of roles in education, including Head of Faculty, IB teacher and now currently teaches A level and GCSE courses. Craig supported his students to achieve the best results the school had ever had in IB Computer Science.

James Woodhouse

Author: James Woodhouse

Expertise: Computer Science

James graduated from the University of Sunderland with a degree in ICT and Computing education. He has over 14 years of experience both teaching and leading in Computer Science, specialising in teaching GCSE and A-level. James has held various leadership roles, including Head of Computer Science and coordinator positions for Key Stage 3 and Key Stage 4. James has a keen interest in networking security and technologies aimed at preventing security breaches.