var Turtle1 var Turtle2 var Is_Turtle

  • @ma1w4re@lemm.ee
    link
    fedilink
    3
    edit-2
    3 months ago

    Inheritance established “is a” relationship between classes.

    class Turtle;  
    class TigerTurtle is a Turtle (but better);  
    class BossTurtle is a Turtle (but better);  
    

    Underlying classes hold an inner object to the super class, everything from Turtle will be in TigerTurtle and BossTurtle.

    In some languages that is configurable with public, private, protected keywords.

    Relatedly, there’s also composition, which establishes a “has a” relationship:

    class TurtleTail;
    class Turtle:
      var tail: TurtleTail; (has a tail);
    

    Since Turtle is NOT a tail, but a whole animal, turtle should not inherit TurtleTail. But it HAS a tail, thus we add turtle tail as a property.

    • @_stranger_@lemmy.world
      link
      fedilink
      3
      edit-2
      3 months ago

      I’m only commenting because the actual python is practically pseudo code:

      
      # A turtle class
      class Turtle:
          shell=True
      
      # A boss class
      class Boss:
          authority=True
      
      #A class that inherits from another
      class TigerTurtle(Turtle):
          fuzzy=True
      
      # Multiple inheritance, or "The Devil's Playground"
      class TigerBossTurtle(TigerTurtle, Boss):
          #  shell, authority, and fuzzy are all true
          ...