Hi, can I make a class with a lot of classes in the inside of this one? Its the only way I think one can accomplished polymorphism. Also, If I call a superclass that has a lot of subclasses, will it “call” only the superclass or will it call the superclass, I mean by this if I will only be able to use modify my data with the method inside the superclass, or if I call my superclass will I be able to use the methods inside that superclass?
That would not be the way to go.
based on the explanation in this lesson:
The following example qualifies as polymorphism:
class A: def abc(self): print('hello a') class B: def abc(self): print('hello b') class C: def abc(self): print('hello c') a = A() a.abc() b = B() b.abc() c = C() c.abc()
the same method does different things on different classes. Same for the
+ (see example in the lesson).
this is known as MRO, here is a an article:
that is a bit too much for a single forum post.
I have made an example, that is more practical:
class Circle: def __init__(self, radius): self.pi = 3.1415 self.radius = radius def get_area(self): return self.radius ** 2 * self.pi class Square: def __init__(self, length_a): self.length_a = length_a def get_area(self): return self.length_a ** 2 class Rectangle(Square): def __init__(self, length_a, length_b): super().__init__(length_a) self.length_b = length_b def get_area(self): return self.length_a * self.length_b