What is the expected behavior of the following code?
What is the expected behavior of the following code?
The given code defines a base class 'Super' with two methods: 'make' which returns 0, and 'doit' which calls 'make' and returns its result. 'Sub_A' and 'Sub_B' are subclasses of 'Super' that override 'make' to return 1 and 2 respectively. When instances of 'Sub_A' and 'Sub_B' call 'doit', 'self.make()' invokes the overridden 'make' methods in the subclasses. Therefore, 'a.doit()' calls 'Sub_A''s 'make' and returns 1, and 'b.doit()' calls 'Sub_B''s 'make' and returns 2. The final output of 'print(a.doit() + b.doit())' is 1 + 2, which is 3.
C is correct