Back to 课程

Computer-Science-A-level-Ocr

0% Complete
0/0 Steps
  1. 3-3-networks
    8 主题
  2. 3-2-databases
    7 主题
  3. 3-1-compression-encryption-and-hashing
    4 主题
  4. 2-5-object-oriented-languages
    7 主题
  5. 2-4-types-of-programming-language
    4 主题
  6. 2-3-software-development
    5 主题
  7. 2-2-applications-generation
    6 主题
  8. 2-1-systems-software
    8 主题
  9. 1-3-input-output-and-storage
    2 主题
  10. 1-2-types-of-processor
    3 主题
  11. 1-1-structure-and-function-of-the-processor
    1 主题
  12. structuring-your-responses
    3 主题
  13. the-exam-papers
    2 主题
  14. 8-2-algorithms-for-the-main-data-structures
    4 主题
  15. 8-1-algorithms
    10 主题
  16. 7-2-computational-methods
    11 主题
  17. 7-1-programming-techniques
    14 主题
  18. 6-5-thinking-concurrently
    2 主题
  19. 6-4-thinking-logically
    2 主题
  20. 6-3-thinking-procedurally
    3 主题
  21. 6-2-thinking-ahead
    1 主题
  22. 6-1-thinking-abstractly
    3 主题
  23. 5-2-moral-and-ethical-issues
    9 主题
  24. 5-1-computing-related-legislation
    4 主题
  25. 4-3-boolean-algebra
    5 主题
  26. 4-2-data-structures
    10 主题
  27. 4-1-data-types
    9 主题
  28. 3-4-web-technologies
    16 主题
课 Progress
0% Complete

Programming Polymorphism

  • To implement polymorphism in code, you need a solid grasp of object-oriented programming, especially inheritance and method overriding

Run-time polymorphism

  • This happens when a subclass overrides a method defined in a superclass, and the correct version is chosen at run-time, not compile-time

How do you Define Polymorphism?

Example scenario: Animal, Dog, and Cat

Step-by-step logic (pseudocode)

  1. Define a superclass called Animal with a method speak() that does nothing

  2. Create subclasses called Dog and Cat that inherit from Animal

  3. In each subclass, override the speak() method to provide a specific output

  4. Write a function make_sound(animal) that accepts an object of type Animal and calls its speak() method

  5. Create instances of Dog and Cat, and pass them to make_sound()

CLASS Animal METHOD speak() // Empty method (acts as a placeholder) CLASS Dog EXTENDS Animal METHOD speak() OUTPUT "Woof" CLASS Cat EXTENDS Animal METHOD speak() OUTPUT "Meow" PROCEDURE make_sound(animal : Animal) CALL animal.speak() // Create objects
DECLARE myDog : Dog
DECLARE myCat : Cat SET myDog TO NEW Dog()
SET myCat TO NEW Cat() // Demonstrate polymorphism
CALL make_sound(myDog) // Outputs: Woof
CALL make_sound(myCat) // Outputs: Meow
  • Animal is a base class with a speak() method

  • Dog and Cat are subclasses that override the speak() method

  • make_sound() takes an Animal object but calls the correct version of speak() depending on whether it’s a Dog or a Cat

  • This demonstrates run-time polymorphism – the method call is resolved based on the actual type of the object

Python

class Animal: def speak(self): pass # Placeholder method class Dog(Animal): def speak(self): print("Woof") class Cat(Animal): def speak(self): print("Meow") def make_sound(animal): animal.speak() dog = Dog()
cat = Cat() make_sound(dog) # Outputs: Woof
make_sound(cat) # Outputs: Meow
  • This shows method overriding

  • The make_sound() function relies on dynamic method binding

Java

class Animal { public void speak() { // Empty default method }
} class Dog extends Animal { @Override public void speak() { System.out.println("Woof"); }
} class Cat extends Animal { @Override public void speak() { System.out.println("Meow"); }
} public class Main { public static void makeSound(Animal animal) { animal.speak(); } public static void main(String[] args) { Dog dog = new Dog(); Cat cat = new Cat(); makeSound(dog); // Outputs: Woof makeSound(cat); // Outputs: Meow }
}
  • Recognise use of a superclass reference (Animal animal) pointing to a subclass object

  • Polymorphism occurs when animal.speak() dynamically calls the correct overridden method

Responses

您的邮箱地址不会被公开。 必填项已用 * 标注