# multiple_inheritance.py
#
# ICS 33 Spring 2026
# Code Example
#
# A handful of classes that inherit from each other, including the use of
# multiple inheritance, that underlies some experiments from the notes
# (and the associated lecture).



class Base1:
    def one_only(self):
        return 'Base1.one_only'


    def both(self):
        return 'Base1.both'



class Base2:
    def two_only(self):
        return 'Base2.two_only'


    def both(self):
        return 'Base2.both'



class Derived12(Base1, Base2):
    def derived_only(self):
        return 'Derived12.derived_only'



class Derived21(Base2, Base1):
    def derived_only(self):
        return 'Derived21.derived_only'



class Derived12Override(Base1, Base2):
    def one_only(self):
        return 'Derived12Override.one_only'


    def two_only(self):
        return 'Derived12Override.two_only'


    def both(self):
        return 'Derived12Override.both'
