lecture 25
play

LECTURE 25 OBJECT-ORIENTED PROGRAMMING 3 INHERITANCE MCS 260 Fall - PowerPoint PPT Presentation

LECTURE 25 OBJECT-ORIENTED PROGRAMMING 3 INHERITANCE MCS 260 Fall 2020 David Dumas / REMINDERS Work on Project 3 ASAP. Do not delay! Worksheet 9 available Quiz 9 soon / GOALS Connue working on Rectangle and Circle classes Add


  1. LECTURE 25 OBJECT-ORIENTED PROGRAMMING 3 INHERITANCE MCS 260 Fall 2020 David Dumas /

  2. REMINDERS Work on Project 3 ASAP. Do not delay! Worksheet 9 available Quiz 9 soon /

  3. GOALS Con�nue working on Rectangle and Circle classes Add addi�onal operator overloading Add a subclass Result: Lecture 25 geom.py (If this module is updated in later lectures, this geom.py link will always go to the latest version.) /

  4. MORE OVERLOADING Recall operator overloading means wri�ng code to give built-in operators custom behavior when applied to your classes. Last �me: Custom equality test with __eq__ . Now: Custom addi�on with __add__ . We con�nue with geom.py from Lecture 24 . /

  5. How should we add two instances of Rectangle? Idea: Define R+S to be the smallest rectangle that contains both R and S . /

  6. INHERITANCE Complex programs may have many classes. O�en, some classes have a "is-a" rela�onship: One represents a more specific type of object than another. e.g. Dresser is a FurnitureItem More restric�ve classes can have specialized func�ons (e.g. open_drawer(idx) ) and a�ributes (e.g. ndrawers ). /

  7. In OOP, is-a rela�onships are formalized through inheritance . The more specific class is a subclass of the more general one. Subclasses inherit all methods and a�ributes from their superclass, but these can be changed or added to in the subclass defini�on. Syntax: class Dresser(FurnitureItem): /

  8. CLASS HIERARCHY EXAMPLE /

  9. CLASS HIERARCHY EXAMPLE /

  10. IN GEOM MODULE? Circle and Rectangle share a lot of behavior—should both be subclasses of another class? This is worth considering, but we won't do it today. What if we want to add a class Square? Since any square is a rectangle, we should make Square a subclass of Rectangle. /

  11. SUPER() In a method of a subclass, super() returns an modified view of the current object that behaves like an instance of the superclass. e.g. In a Square object, super() returns a version of the same object that will act like a Rectangle . super() is o�en used to call the superclass constructor. /

  12. __CLASS__ Every object has an a�ribute __class__ that refers to its class. In a method body, self.__class__.__name__ gives the name of the class as a string. /

  13. REFERENCES In Downey : Chapter 17 discusses classes, objects, and methods Object-oriented programming is discussed in general terms in Sec�on 6.5 of Brookshear & Brylow . REVISION HISTORY 2020-10-21 geom.py link 2020-10-20 Ini�al publica�on /

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend