why subclass object python code example

Example 1: what is a child inheritance in python with example

# =============================================================================
# Inhertance
# =============================================================================
class A:
    def feature1(self):
        print('Feature 1 in process...')
    def feature2(self):
        print('Feature 2 in process...')       #Pt.1
        
class B:
    def feature3(self):
        print('Feature 3 in process...')
    def feature4(self):
        print ('Feature 4 in process...')
        
a1 = A() 

a1.feature1()
a1.feature2()

a2 = B()

a2.feature3()
a2.feature4()
# THE ABOVE PROGRAM IS A PROGRAM WITHOUT USING INHERITANCE
        
# WITH THE USE OF INHERITANCE IS BELOW
class A:
    def feature1(self):
        print('Feature 1 in process...')    
    def feature2(self):
        print('Feature 2 in process...')
        
class B(A):
    def feature3(self):
        print('Feature 3 in process...')    # Pt.2
    def feature4(self):
        print ('Feature 4 in process...')
        
a1 = A() 

a1.feature1()
a1.feature2()

a2 = B()

a2.feature3()
a2.feature4()


# NOW TO CHECK OUT THE DIFFERENCE BETWEEN Pt.1
# AND Pt.2 TRY RUNNIG THE CODE ON THE BASIS OF
# INHERITANCE, IN OTHER WORDS TRY RUNNING ONLY 
# B CLASS IN Pt.2 AND THEN RUN ONLY a2
# YOU WILL SEE A DIFFERENCE IN THE RUNNING OF 
# ONLY a2,,,, IT WILL STILL SHOW THAT FEATURE 3
# AND 4 IS IN PROCESS,, THIS MEANS THAT B IS THE

Example 2: python subclass

class SuperHero(object): #superclass, inherits from default object
    def getName(self):
        raise NotImplementedError #you want to override this on the child classes

class SuperMan(SuperHero): #subclass, inherits from SuperHero
    def getName(self):
        return "Clark Kent"

class SuperManII(SuperHero): #another subclass
    def getName(self):
       return "Clark Kent, Jr."

if __name__ == "__main__":
    sm = SuperMan()
    print sm.getName()
    sm2 = SuperManII()
    print sm2.getName()