Inheritance

Inheritance (āļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ”āļ„āļĨāļēāļŠ)

āđƒāļ™āļšāļ—āļāđˆāļ­āļ™āļŦāļ™āđ‰āļē āļ„āļļāļ“āđ„āļ”āđ‰āđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰āļžāļ·āđ‰āļ™āļāļēāļ™āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļŠāļīāļ‡āļ§āļąāļ•āļ–āļļāđƒāļ™āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļ„āļĨāļēāļŠāđāļĨāļ°āļ­āļ­āļšāđ€āļˆāđ‡āļ„āđ„āļ›āđāļĨāđ‰āļ§ āđāļĨāļ°āđƒāļ™āļšāļ—āļ™āļĩāđ‰ āļ„āļļāļ“āļˆāļ°āđ„āļ”āđ‰āđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰āđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļ­āļĩāļāļ­āļĒāđˆāļēāļ‡āļŦāļ™āļķāđˆāļ‡āļ‚āļ­āļ‡ OOP āļ„āļ·āļ­āļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ”āļ„āļĨāļēāļŠ (Inheritance) āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ—āļĩāđˆāļŠāļģāļ„āļąāļāđƒāļ™āļ āļēāļĐāļē Python āļ—āļĩāđˆāļˆāļ°āļ—āļģāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āļ™āļģāļ„āļĨāļēāļŠāļ—āļĩāđˆāđ€āļ‚āļĩāļĒāļ™āđ„āļ§āđ‰āđāļĨāđ‰āļ§āļĄāļēāđƒāļŠāđ‰āļ­āļĩāļāļ„āļĢāļąāđ‰āļ‡āđāļĨāļ°āđ€āļžāļīāđˆāļĄāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāđ€āļ‚āđ‰āļēāļĄāļē āļāđˆāļ­āļ™āļ—āļĩāđˆāļˆāļ°āđ€āļĢāļīāđˆāļĄ āļĄāļēāļ—āļģāļ„āļ§āļēāļĄāđ€āļ‚āđ‰āļēāđƒāļˆāļāļąāļšāđāļ™āļ§āļ„āļīāļ”āļ‚āļ­āļ‡āļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ”āļāđˆāļ­āļ™

Inheritance āļ„āļ·āļ­āļ­āļ°āđ„āļĢ

Inheritance āļŦāļĢāļ·āļ­āļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ” āļ„āļ·āļ­āļāļēāļĢāļ—āļĩāđˆāļ„āļĨāļēāļŠāļŦāļĢāļ·āļ­āļ­āļ­āļšāđ€āļˆāđ‡āļ„ āđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļ–āđˆāļēāļĒāļ—āļ­āļ”āđāļ­āļ•āļ—āļĢāļīāļšāļīāļ§āļ•āđŒāđāļĨāļ°āđ€āļĄāļ˜āļ­āļ”āļˆāļēāļāļ„āļĨāļēāļŠāļ­āļ·āđˆāļ™ āļ™āļąāđˆāļ™āļˆāļ°āļ—āļģāđƒāļŦāđ‰āļ„āļĨāļēāļŠāļ”āļąāļ‡āļāļĨāđˆāļēāļ§āļĄāļĩāđāļ­āļ•āļ—āļĢāļīāļšāļīāļ§āļ•āđŒāđāļĨāļ°āđ€āļĄāļ˜āļ­āļ”āđ€āļŦāļĄāļ·āļ­āļ™āļ„āļĨāļēāļŠāļ—āļĩāđˆāļĄāļąāļ™āļŠāļ·āļšāļ—āļ­āļ”āļĄāļēāđ€āļĢāļĩāļĒāļāļ„āļĨāļēāļŠāļ™āļąāđ‰āļ™āļ§āđˆāļē super class āļŦāļĢāļ·āļ­ base class āļŠāđˆāļ§āļ™āļ„āļĨāļēāļŠāļ—āļĩāđˆāđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ”āđ€āļĢāļĩāļĒāļāļ§āđˆāļē sub class āļŦāļĢāļ·āļ­ child class āļ™āļ­āļāļˆāļēāļāļ™āļĩāđ‰ āđ€āļĢāļēāļĒāļąāļ‡āļŠāļēāļĄāļēāļĢāļ–āļ‚āļĒāļēāļĒāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđ‚āļ”āļĒāļāļēāļĢāđ€āļžāļīāđˆāļĄāđāļ­āļ•āļ—āļĢāļīāļšāļīāļ§āļ•āđŒāļŦāļĢāļ·āļ­āđ€āļĄāļ˜āļ­āļ” āļŦāļĢāļ·āļ­āļ—āļģāļāļēāļĢ override āđ€āļĄāļ˜āļ­āļ”āļ‚āļ­āļ‡ super class āđ„āļ”āđ‰ āļ™āļĩāđˆāđ€āļ›āđ‡āļ™āđāļ™āļ§āļ„āļīāļ”āđƒāļ™āļāļēāļĢāļ™āļģāđ‚āļ„āđ‰āļ”āđ€āļ”āļīāļĄāļāļĨāļąāļšāļĄāļēāđƒāļŠāđ‰āđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āđ€āļ‚āļĩāļĒāļ™āļ‚āļķāđ‰āļ™āđƒāļŦāļĄāđˆ āđāļĨāļ°āđ€āļžāļīāđˆāļĄāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ‚āļ­āļ‡āđ€āļ”āļīāļĄāļ—āļĩāđˆāļĄāļĩāļ­āļĒāļđāđˆ āđƒāļ™āļ āļēāļĐāļē Python āļ™āļąāđ‰āļ™āļĒāļąāļ‡āļŠāļ™āļąāļšāļŠāļ™āļļāļ™ Multiple inheritance āļ‹āļķāđˆāļ‡āļ­āļ™āļļāļāļēāļ•āļīāđƒāļŦāđ‰āļ„āļĨāļēāļŠāļŠāļ·āļšāļ—āļ­āļ”āļˆāļēāļāļ„āļĨāļēāļŠāļŦāļĨāļēāļĒāđ† āļ„āļĨāļēāļŠāđ„āļ”āđ‰āđƒāļ™āđ€āļ§āļĨāļēāđ€āļ”āļĩāļĒāļ§āļāļąāļ™

āļ™āļĩāđˆāđ€āļ›āđ‡āļ™āļĢāļđāļ›āđāļšāļšāļ‚āļ­āļ‡āļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ”āļ„āļĨāļēāļŠāđƒāļ™āļ āļēāļĐāļē Python

class DerivedClassName(BaseClassName):
    pass

class DerivedClassName(BaseClassName1, BaseClassName2, ...):
    pass

āđƒāļ™āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡ āđ€āļ›āđ‡āļ™āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ”āļ„āļĨāļēāļŠ āđ‚āļ”āļĒāđāļšāļšāđāļĢāļāđ€āļ›āđ‡āļ™āļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ”āļˆāļēāļāļ„āļĨāļēāļŠāđ€āļ”āļĩāļĒāļ§ āļ‹āļķāđˆāļ‡āļŠāļ·āđˆāļ­āļ‚āļ­āļ‡ super class āļˆāļ°āļ­āļĒāļđāđˆāđƒāļ™āļ§āļ‡āđ€āļĨāđ‡āļš (BaseClassName) āđāļĨāļ°āļŠāļģāļŦāļĢāļąāļšāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļ•āđˆāļ­āļĄāļē āļ„āļ·āļ­āļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ”āđāļšāļšāļŦāļĨāļēāļĒāļ„āļĨāļēāļŠ āđ‚āļ”āļĒāļˆāļ°āļĄāļĩāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļŦāļĄāļēāļĒāļ„āļ­āļĄāļĄāļē (,) āđāļĒāļāļĢāļ°āļŦāļ§āđˆāļēāļ‡āđāļ•āđˆāļĨāļ°āļ„āļĨāļēāļŠāļ­āļ­āļāļˆāļēāļāļāļąāļ™ āļ•āđˆāļ­āđ„āļ›āļĄāļēāļ”āļđāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļ„āļĨāļēāļŠāļ—āļĩāđˆāļŠāļ·āļšāļ—āļ­āļ”āļˆāļēāļāļ„āļĨāļēāļŠāļ­āļ·āđˆāļ™āđƒāļ™āļ āļēāļĐāļē Python

āļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ”āļ„āļĨāļēāļŠ

āđƒāļ™āļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ”āļ„āļĨāļēāļŠāļ™āļąāđ‰āļ™ āđ€āļĢāļēāļˆāļ°āļĒāļāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ‚āļ”āļĒāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļ„āļĨāļēāļŠāļŠāļģāļŦāļĢāļąāļšāđ€āļāđ‡āļšāļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ­āļ‡āļšāļļāļ„āļ„āļĨāļŠāļ·āđˆāļ­ Person āļŦāļĨāļąāļ‡āļˆāļēāļāļ™āļąāđ‰āļ™āđ€āļĢāļēāļˆāļ°āļŠāļĢāđ‰āļēāļ‡āļ„āļĨāļēāļŠāļ‚āļ­āļ‡āļĨāļđāļāļˆāđ‰āļēāļ‡ Employee āļ‹āļķāđˆāļ‡āļ„āļĨāļēāļŠāļ™āļĩāđ‰āļˆāļ°āļŠāļ·āļšāļ—āļ­āļ”āļĄāļēāļˆāļēāļāļ„āļĨāļēāļŠāļāđˆāļ­āļ™āļŦāļ™āđ‰āļē āļĄāļēāļ”āļđāļŠāđˆāļ§āļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ‚āļ­āļ‡āđ€āļĢāļē

class Person:

    def __init__(self, firstName, lastName):
        self.firstName = firstName
        self.lastName = lastName

    def getName(self):
        return self.firstName + ' ' + self.lastName

class Employee(Person):

    def setWorkDetail(self, department, position):
        self.department = department
        self.position = position

    def getWorkDetail(self):
        return self.position + ', ' + self.department

emp1 = Employee('Mladen', 'Solomun')
emp1.setWorkDetail('Software Engineer', 'C++ programmer')

print('Name: ' + emp1.getName())
print('Work: ' + emp1.getWorkDetail())

emp2 = Employee('John', 'Askew')
emp2.setWorkDetail('Sound Engineer', 'Musical acoustics')

print('Name: ' + emp2.getName())
print('Work: ' + emp2.getWorkDetail())

āđƒāļ™āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡ āđ€āļĢāļēāđ„āļ”āđ‰āļŠāļĢāđ‰āļēāļ‡āļ„āļĨāļēāļŠ Person āļ‹āļķāđˆāļ‡āļ„āļĨāļēāļŠāļ™āļĩāđ‰āđ€āļ›āđ‡āļ™ super class āđ€āļžāļ·āđˆāļ­āļ—āļĩāđˆāļˆāļ°āļ™āļģāđ„āļ›āđƒāļŦāđ‰āļ„āļĨāļēāļŠāļ­āļ·āđˆāļ™āļŠāļ·āļšāļ—āļ­āļ” āđƒāļ™āļ„āļĨāļēāļŠāļĄāļĩāļŠāļ­āļ‡āđāļ­āļ•āļ—āļĢāļīāļšāļīāļ§āļ•āđŒāļ„āļ·āļ­ firstName āđƒāļŠāđ‰āļŠāļģāļŦāļĢāļąāļšāđ€āļāđ‡āļšāļŠāļ·āđˆāļ­ āđāļĨāļ° lastName āđƒāļŠāđ‰āļŠāļģāļŦāļĢāļąāļšāđ€āļāđ‡āļšāļ™āļēāļĄāļŠāļāļļāļĨ āđāļĨāļ°āļĄāļĩāđ€āļĄāļ˜āļ­āļ” getName() āđ€āļžāļ·āđˆāļ­āļĢāļąāļšāļŠāļ·āđˆāļ­āđāļĨāļ°āļ™āļēāļĄāļŠāļāļļāļĨāđ„āļ”āđ‰āđƒāļ™āļžāļĢāđ‰āļ­āļĄāļāļąāļ™

class Employee(Person):
...

āļŦāļĨāļąāļ‡āļˆāļēāļāļ™āļąāđ‰āļ™āđ€āļĢāļēāđ„āļ”āđ‰āļŠāļĢāđ‰āļēāļ‡āļ„āļĨāļēāļŠ Employee āļ‹āļķāđˆāļ‡āđ„āļ”āđ‰āļŠāļ·āļšāļ—āļ­āļ”āļĄāļēāļˆāļēāļāļ„āļĨāļēāļŠ Person āļ™āļąāđˆāļ™āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āđˆāļēāđāļ­āļ•āļ—āļĢāļīāļšāļīāļ§āļ•āđŒāđāļĨāļ°āđ€āļĄāļ˜āļ­āļ”āļ—āļąāđ‰āļ‡āļŦāļĄāļ”āļˆāļēāļāļ„āļĨāļēāļŠ Person āļˆāļ°āļ–āļđāļāļ–āđˆāļēāļĒāļ—āļ­āļ”āļĄāļēāļĒāļąāļ‡āļ„āļĨāļēāļŠāļ™āļĩāđ‰āļ”āđ‰āļ§āļĒ āļ™āļąāđˆāļ™āļˆāļ°āļ—āļģāđƒāļŦāđ‰āļĄāļąāļ™āļĄāļĩāļ—āļļāļāļ­āļĒāđˆāļēāļ‡āđ€āļŦāļĄāļ·āļ­āļ™āļ—āļĩāđˆāļ„āļĨāļēāļŠāļŦāļĨāļąāļāļĄāļĩ āđāļĨāļ°āļ™āļ­āļāļˆāļēāļāļ™āļĩāđ‰āđƒāļ™āļ„āļĨāļēāļŠāļ™āļĩāđ‰āļĒāļąāļ‡āļĄāļĩāđ€āļĄāļ˜āļ­āļ”āđāļĨāļ°āđāļ­āļ•āļ—āļĢāļīāļšāļīāļ§āļ•āđŒāđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāļ‚āļ­āļ‡āļĄāļąāļ™āđ€āļ­āļ‡ āđ‚āļ”āļĒāđ€āļĄāļ˜āļ­āļ” setWorkDetail() āđ€āļ›āđ‡āļ™āđ€āļĄāļ˜āļ­āļ”āļŠāļģāļŦāļĢāļąāļšāļāļģāļŦāļ™āļ”āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļāļēāļĢāļ—āļģāļ‡āļēāļ™āđ‚āļ”āļĒāļĄāļĩāļ•āļģāđāļŦāļ™āđˆāļ‡āļ‡āļēāļ™āđāļĨāļ°āđāļœāļ™āļāļ—āļĩāđˆāļŠāļąāļ‡āļāļąāļ” āđāļĨāļ°āđ€āļĄāļ˜āļ­āļ” getWorkDetail() āđāļŠāļ”āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™

emp1 = Employee('Mladen', 'Solomun')
emp1.setWorkDetail('Software Engineer', 'C++ programmer')

print('Name: ' + emp1.getName())
print('Work: ' + emp1.getWorkDetail())

emp2 = Employee('John', 'Askew')
emp2.setWorkDetail('Sound Engineer', 'Musical acoustics')

print('Name: ' + emp2.getName())
print('Work: ' + emp2.getWorkDetail())

āļŦāļĨāļąāļ‡āļˆāļēāļāđ€āļĢāļēāđ„āļ”āđ‰āļŠāļĢāđ‰āļēāļ‡āļ„āļĨāļēāļŠāđ€āļŠāļĢāđ‡āļˆāđāļĨāđ‰āļ§ āļ•āđˆāļ­āđ„āļ›āđ€āļ›āđ‡āļ™āļāļēāļĢāļ™āļģāļĄāļēāđƒāļŠāđ‰āļ‡āļēāļ™ āđ€āļĢāļēāđ„āļ”āđ‰āļŠāļĢāđ‰āļēāļ‡āļ­āļ­āļšāđ€āļˆāđ‡āļ„āļ‚āļ­āļ‡ Employee āļ‚āļķāđ‰āļ™āļĄāļēāļŠāļ­āļ‡āļ­āļ­āļšāđ€āļˆāđ‡āļ„āļ„āļ·āļ­ emp1 āđāļĨāļ° emp2 āđāļ•āđˆāļĨāļ°āļ­āļ­āļšāđ€āļˆāđ‡āļ„āđ„āļ”āđ‰āļĄāļĩāļāļēāļĢāļāļģāļŦāļ™āļ”āļŠāļ·āđˆāļ­āđāļĨāļ°āļ™āļēāļĄāļŠāļāļļāļĨ āđāļĨāļ°āļĄāļĩāļāļēāļĢāļāļģāļŦāļ™āļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™ āļŦāļĨāļąāļ‡āļˆāļēāļāļ™āļąāđ‰āļ™āđ€āļ›āđ‡āļ™āļāļēāļĢāđāļŠāļ”āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāđāļ•āđˆāļĨāļ°āļ„āļ™ āđ‚āļ”āļĒāđāļŠāļ”āļ‡āļŠāļ·āđˆāļ­āđāļĨāļ°āļ‚āđ‰āļ­āļĄāļđāļĨāļāļēāļĢāļ—āļģāļ‡āļēāļ™

Name: Mladen Solomun
Work: C++ programmer, Software Engineer
Name: John Askew
Work: Musical acoustics, Sound Engineer

āļ™āļĩāđˆāđ€āļ›āđ‡āļ™āļœāļĨāļĨāļąāļžāļ˜āđŒāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ āļ„āļļāļ“āļˆāļ°āđ€āļŦāđ‡āļ™āđ„āļ”āđ‰āļ§āđˆāļēāļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ”āļ™āļąāđ‰āļ™āļ—āļģāđƒāļŦāđ‰āđ€āļĢāļēāļ™āļģāļ„āļĨāļēāļŠāđ€āļ”āļīāļĄāļāļĨāļąāļšāļĄāļēāđƒāļŠāđ‰āđ„āļ”āđ‰ āđāļĨāļ°āļ™āļ­āļāļˆāļēāļāļ™āļĩāđ‰āļĒāļąāļ‡āļŠāļēāļĄāļēāļĢāļ–āđ€āļžāļīāđˆāļĄāđāļ­āļ•āļ—āļĢāļīāļšāļīāļ§āļ•āđŒāđāļĨāļ°āđ€āļĄāļ˜āļ­āļ”āđ€āļ‚āđ‰āļēāđ„āļ›āļ­āļĩāļ āļ‹āļķāđˆāļ‡āļˆāļ°āļ—āļģāđƒāļŦāđ‰āļŠāđˆāļ§āļĒāļ›āļĢāļ°āļŦāļĒāļąāļāđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ āļĨāļ”āļ„āļ§āļēāļĄāļ‹āđ‰āļģāļ‹āđ‰āļ­āļ™āļ‚āļ­āļ‡āđ‚āļ„āđ‰āļ”

Multiple Inheritance

āđƒāļ™āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļāđˆāļ­āļ™āļŦāļ™āđ‰āļē āđ€āļ›āđ‡āļ™āļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ”āļ„āļĨāļēāļŠāļˆāļēāļāđ€āļžāļĩāļĒāļ‡āđāļ„āđˆāļ„āļĨāļēāļŠāđ€āļ”āļĩāļĒāļ§ āļ­āļĒāđˆāļēāļ‡āđ„āļĢāļāđ‡āļ•āļēāļĄāđƒāļ™āļ āļēāļĐāļē Python āļ™āļąāđ‰āļ™āļŠāļ™āļąāļšāļŠāļ™āļļāļ™āļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ”āļˆāļēāļāļŦāļĨāļēāļĒāļ„āļĨāļēāļŠāđ„āļ”āđ‰āđƒāļ™āļžāļĢāđ‰āļ­āļĄāļāļąāļ™ āļ•āđˆāļ­āđ„āļ›āļĄāļēāļ”āļđāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļĩāđˆāļˆāļ°āđƒāļŠāđ‰āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļˆāļēāļāļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ”āļŦāļĨāļēāļĒāļ„āļĨāļēāļŠ

class Geographic:

    def setCordinate(self, latitude, longitude):
        self.latitude = latitude
        self.longitude = longitude

    def getCordinate(self):
        return str(self.latitude) + ', ' + str(self.longitude)

    def getTimeZone(self):
        timezone = round(self.longitude / 12 - 1)
        if timezone > 0:
            return '+' + str(timezone)
        else:
            return str(timezone)

    def getClimate(self):
        if self.latitude <= -66.5 or self.latitude >= 66.5:
            return 'Polar zone'
        elif self.latitude <= -23.5 or self.latitude >= 23.5:
            return 'Temperate zone'
        else:
            return 'Tropical zone'   

class Temperature:

    def setCelsius(self, celsius):
        self.celsius = celsius

    def getFahrenheit(self):
        return self.celsius * 1.8 + 32

    def getKelvin(self):
        return self.celsius + 273.15

    def getWeather(self):
        if self.celsius <= 0:
            return 'freezing'
        elif self.celsius <= 18:
            return 'cold'
        elif self.celsius <= 28:
            return 'warm'
        else:
            return 'hot'

class Country(Geographic, Temperature):

    def __init__(self, name, area, population):
        self.name = name
        self.area = area
        self.population = population

    def getPopulationDensity(self):
       return self.population / self.area

    def showDetails(self):
        print('Country: %s' % self.name)
        print('Area: %.2f sq km' % self.area)
        print('Population: %d' % self.population)
        print('Density: %.2f person per sq km' % 
        self.getPopulationDensity())
        print('Decimal cordinate: %s' % self.getCordinate())
        print('Time zone: %s' % self.getTimeZone())
        print('Climate: %s' % self.getClimate())
        print('Temperature in Celsius: %.2f degree' % self.celsius)
        print('Temperature in Fahrenheit: %.2f degree' % 
        self.getFahrenheit())
        print('Temperature in Kelvin: %.2f' % self.getKelvin())
        print('The weather is %s' % self.getWeather())
        print()

āđƒāļ™āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡ āđ€āļĢāļēāđ„āļ”āđ‰āļŠāļĢāđ‰āļēāļ‡ super class āļĄāļēāļŠāļ­āļ‡āļ„āļĨāļēāļŠāļ„āļ·āļ­ Geographic āđ€āļ›āđ‡āļ™āļ„āļĨāļēāļŠāļˆāļąāļ”āļāļēāļĢāļāļēāļĢāļ—āļģāļ‡āļēāļ™āđƒāļ™āļ—āļēāļ‡āļ āļđāļĄāļīāļĻāļēāļŠāļ•āļĢāđŒ āđāļĨāļ°āļ„āļĨāļēāļŠāļ—āļĩāđˆāļŠāļ­āļ‡ Temperature āđ€āļ›āđ‡āļ™āļ„āļĨāļēāļŠāļŠāļģāļŦāļĢāļąāļšāļˆāļąāļ”āļāļēāļĢāļ­āļļāļ“āļŦāļ āļđāļĄāļī āļ•āđˆāļ­āđ„āļ›āđ€āļĢāļēāļˆāļ°āļĄāļēāļ­āļ˜āļīāļšāļēāļĒāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļ„āļĨāļēāļŠāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āļ­āļĒāđˆāļēāļ‡āļĨāļ°āđ€āļ­āļĩāļĒāļ” āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļ„āļļāļ“āđ€āļ‚āđ‰āļēāđƒāļˆāđƒāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļĄāļąāļ™ āļ„āļļāļ“āļ­āļēāļˆāļˆāļ°āļŦāļĒāļīāļšāđāļāđ‰āļ§āļāļēāđāļŸāļ‚āļ­āļ‡āļ„āļļāļ“āļĄāļēāļ”āļ·āđˆāļĄāđ„āļ›āļ”āđ‰āļ§āļĒāļāđ‡āđ„āļ”āđ‰ āđ€āļžāļĢāļēāļ°āļĄāļąāļ™āļ­āļēāļˆāļˆāļ°āļĒāļēāļ§āļŠāļąāļāļŦāļ™āđˆāļ­āļĒ āđāļ•āđˆāđ€āļŠāļ·āđˆāļ­āđ€āļ–āļ­āļ°āļ§āđˆāļēāļĄāļąāļ™āļŠāļ™āļļāļāđāļ™āđˆāļ™āļ­āļ™

class Geographic:

    def setCordinate(self, latitude, longitude):
        self.latitude = latitude
        self.longitude = longitude

    def getCordinate(self):
        return str(self.latitude) + ', ' + str(self.longitude)

    def getTimeZone(self):
        timezone = round(self.longitude / 12 - 1)
        if timezone > 0:
            return '+' + str(timezone)
        else:
            return str(timezone)

    def getClimate(self):
        if self.latitude <= -66.5 or self.latitude >= 66.5:
            return 'Polar zone'
        elif self.latitude <= -23.5 or self.latitude >= 23.5:
            return 'Temperate zone'
        else:
            return 'Tropical zone'

āļ„āļĨāļēāļŠāđāļĢāļāļ‚āļ­āļ‡āđ€āļĢāļēāļ„āļ·āļ­āļ„āļĨāļēāļŠ Geographic āļ„āļĨāļēāļŠāļ™āļĩāđ‰āļĢāļąāļšāļœāļīāļ”āļŠāļ­āļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļ āļđāļĄāļīāļĻāļēāļŠāļ•āļĢāđŒ āđ‚āļ”āļĒāđ€āļĢāļēāļĄāļĩāđ€āļĄāļ˜āļ­āļ” setCordinate() āļŠāļģāļŦāļĢāļąāļšāļāļģāļŦāļ™āļ”āļ„āđˆāļē latitude āđāļĨāļ° longitude āļ‹āļķāđˆāļ‡āļ™āļĩāđˆāđ€āļ›āđ‡āļ™āļžāļīāļāļąāļ”āļ—āļĩāđˆāļ•āļąāđ‰āļ‡āļ‚āļ­āļ‡āļŠāļīāđˆāļ‡āļ•āđˆāļēāļ‡āđ† āļšāļ™āđ‚āļĨāļ āđƒāļ™āļ„āļĨāļēāļŠāļ™āļĩāđ‰āđ€āļĢāļēāđ„āļ”āđ‰āļĄāļĩāđ€āļĄāļ˜āļ­āļ”āļ—āļĩāđˆāļŠāļģāļ„āļąāļāļ„āļ·āļ­ getTimeZone() āđ€āļ›āđ‡āļ™āđ€āļĄāļ˜āļ­āļ”āļŠāļģāļŦāļĢāļąāļšāļŦāļēāļ„āđˆāļē timezone āļˆāļēāļ longitude āļ‹āļķāđˆāļ‡āļĨāļ­āļ‡āļˆāļīāļˆāļđāļ”āļŦāļĢāļ·āļ­āđ€āļŠāđ‰āļ™āđāļ§āļ‡ āđ€āļ›āđ‡āļ™āđ€āļŠāđ‰āļ™āļĢāļ°āļĒāļ°āļ•āļēāļĄāļĒāļēāļ§āļ‚āļ­āļ‡āļžāļ·āđ‰āļ™āļœāļīāļ§āđ‚āļĨāļ āļĄāļąāļ™āđƒāļŠāđ‰āļŠāļģāļŦāļĢāļąāļšāļāļģāļŦāļ™āļ”āđ€āļ‚āļ•āđ€āļ§āļĨāļēāļšāļ™āđ‚āļĨāļāļ­āļ­āļāđ€āļ›āđ‡āļ™āđ€āļ‚āļ•āļ•āđˆāļēāļ‡āđ† āđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļāđ‚āļĨāļāļ‚āļ­āļ‡āđ€āļĢāļēāđ€āļ›āđ‡āļ™āļ—āļĢāļ‡āļāļĨāļĄ āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļˆāļķāļ‡āļ—āļģāđƒāļŦāđ‰āđ€āļ§āļĨāļēāđƒāļ™āđāļ•āđˆāļĨāļ°āļžāļ·āđ‰āļ™āļ—āļĩāđˆāđāļ•āļāļ•āđˆāļēāļ‡āļāļąāļ™ āļ”āļąāļ‡āļĢāļđāļ›āļ‚āđ‰āļēāļ‡āļĨāđˆāļēāļ‡

āļ•āđˆāļ­āļĄāļēāđ€āļ›āđ‡āļ™āđ€āļĄāļ˜āļ­āļ” getClimate() āđ€āļĄāļ˜āļ­āļ”āļ™āļĩāđ‰āļˆāļ°āļ™āļģāļ„āđˆāļē latitude āđ€āļŠāđ‰āļ™āļĨāļ°āļ•āļīāļˆāļđāļ”āļŦāļĢāļ·āļ­āļ—āļĩāđˆāđ€āļĢāļĩāļĒāļāļāļąāļ™āļ§āđˆāļēāđ€āļŠāđ‰āļ™āļĢāļļāđ‰āļ‡ āļ‹āļķāđˆāļ‡āļĄāļąāļ™āđƒāļŠāđ‰āđ€āļ›āđ‡āļ™āļ•āļąāļ§āđāļšāđˆāļ‡āļŠāļ āļēāļžāļ­āļēāļāļēāļĻāļ‚āļ­āļ‡āđ‚āļĨāļāļ­āļ­āļāđ€āļ›āđ‡āļ™āļŠāļēāļĄāđāļšāļšāđƒāļŦāļāđˆāđ† āļ„āļ·āļ­āđ€āļ‚āļ•āļĢāđ‰āļ­āļ™ āđ€āļ‚āļ•āļ­āļšāļ­āļļāđˆāļ™ āđāļĨāļ°āđ€āļ‚āļ•āļ‚āļąāđ‰āļ§āđ‚āļĨāļ āļ”āļąāļ‡āļ™āļąāđ‰āļ™āđ€āļĄāļ˜āļ­āļ”āļ™āļĩāđ‰āļˆāļ°āļšāļ­āļāļ§āđˆāļēāļžāļ·āđ‰āļ™āļ—āļĩāđˆāļ™āļąāđ‰āļ™āļ­āļĒāļđāđˆāđƒāļ™āđ€āļ‚āļ•āļ­āļēāļāļēāļĻāđāļšāļšāđ„āļŦāļ™ āđ‚āļ”āļĒāļ„āļģāļ™āļ§āļ“āļˆāļēāļāļ„āđˆāļēāļĨāļ°āļ•āļīāļˆāļđāļ”

class Temperature:

    def setCelsius(self, celsius):
        self.celsius = celsius

    def getFahrenheit(self):
        return self.celsius * 1.8 + 32

    def getKelvin(self):
        return self.celsius + 273.15

    def getWeather(self):
        if self.celsius <= 0:
            return 'freezing'
        elif self.celsius <= 18:
            return 'cold'
        elif self.celsius <= 28:
            return 'warm'
        else:
            return 'hot'

āļ•āđˆāļ­āļĄāļēāđ€āļ›āđ‡āļ™āļ„āļĨāļēāļŠ Temperature āļ„āļĨāļēāļŠāļ™āļĩāđ‰āļˆāļąāļ”āļāļēāļĢāđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļ­āļļāļ“āļŦāļ āļđāļĄāļī āđ‚āļ”āļĒāļĄāļĩāđ€āļĄāļ˜āļ­āļ” setCelsius() āļŠāļģāļŦāļĢāļąāļšāļĢāļąāļšāļ„āđˆāļēāļ­āļļāļ“āļŦāļ āļđāļĄāļīāđƒāļ™āļŦāļ™āđˆāļ§āļĒāļ­āļ‡āļĻāļēāđ€āļ‹āļĨāđ€āļ‹āļĩāļĒāļŠ āļŦāļĨāļąāļ‡āļˆāļēāļāļ™āļąāđ‰āļ™āđ€āļĢāļēāđ„āļ”āđ‰āļĄāļĩāđ€āļĄāļ˜āļ­āļ”āđāļ›āļĨāļ‡āļ„āđˆāļēāļŦāļ™āđˆāļ§āļĒāļ™āļĩāđ‰āđ„āļ›āļĒāļąāļ‡āļŦāļ™āđˆāļ§āļĒāļ­āļ·āđˆāļ™āđ† āđƒāļ™āļ­āļ‡āļĻāļēāļŸāļēāđ€āļĢāļ™āđ„āļŪāļ•āđŒ āđāļĨāļ°āđ€āļ„āļĨāļ§āļīāļ™ āđāļĨāļ°āļĄāļĩāđ€āļĄāļ˜āļ­āļ” getWeather() āļŠāļģāļŦāļĢāļąāļšāļ„āļģāļ™āļ§āļ“āļŦāļēāļŠāļ āļēāļžāļ­āļēāļāļēāļĻāļ§āđˆāļēāļĢāđ‰āļ­āļ™ āļ­āļšāļ­āļļāđˆāļ™ āļŦāļ™āļēāļ§ āļŦāļĢāļ·āļ­āđāļŠāđˆāđāļ‚āđ‡āļ‡

class Country(Geographic, Temperature):

    def __init__(self, name, area, population):
        self.name = name
        self.area = area
        self.population = population

    def getPopulationDensity(self):
       return self.population / self.area

    def showDetails(self):
        print('Country: %s' % self.name)
        print('Area: %.2f sq km' % self.area)
        print('Population: %d' % self.population)
        print('Density: %.2f person per sq km' % 
        self.getPopulationDensity())
        print('Decimal cordinate: %s' % self.getCordinate())
        print('Time zone: %s' % self.getTimeZone())
        print('Climate: %s' % self.getClimate())
        print('Temperature in Celsius: %.2f degree' % self.celsius)
        print('Temperature in Fahrenheit: %.2f degree' % 
        self.getFahrenheit())
        print('Temperature in Kelvin: %.2f' % self.getKelvin())
        print('The weather is %s' % self.getWeather())
        print()

āļ•āļ­āļ™āļ™āļĩāđ‰āđ€āļĢāļēāđ„āļ”āđ‰āļŠāļĢāđ‰āļēāļ‡ super class āđ€āļŠāļĢāđ‡āļˆāđ„āļ›āđāļĨāđ‰āļ§ āđāļĨāļ°āļ„āļļāļ“āđ„āļ”āđ‰āđ€āļ‚āđ‰āļēāđƒāļˆāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļĄāļąāļ™āļ—āļąāđ‰āļ‡āļŦāļĄāļ” āļ•āđˆāļ­āđ„āļ›āđ€āļ›āđ‡āļ™āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļ„āļĨāļēāļŠ Country āļ‹āļķāđˆāļ‡āļ„āļĨāļēāļŠāļ™āļĩāđ‰āļŠāļ·āļšāļ—āļ­āļ”āļˆāļēāļāļ„āļĨāļēāļŠāļ—āļąāđ‰āļ‡āļŠāļ­āļ‡āļāđˆāļ­āļ™āļŦāļ™āđ‰āļē āļ™āļąāđˆāļ™āļˆāļ°āļ—āļģāđƒāļŦāđ‰āļĄāļąāļ™āļĄāļĩāđāļ­āļ•āļ—āļĢāļīāļšāļīāļ§āļ•āđŒāđāļĨāļ°āđ€āļĄāļ˜āļ­āļ”āļ—āļąāđ‰āļ‡āļŦāļĄāļ”āđ€āļŦāļĄāļ·āļ­āļ™āļāļąāļš super class āļ‚āļ­āļ‡āļĄāļąāļ™

āļŠāļģāļŦāļĢāļąāļšāđƒāļ™āļ„āļĨāļēāļŠ Country āđ€āļ›āđ‡āļ™āļ„āļĨāļēāļŠāļ‚āļ­āļ‡āļ›āļĢāļ°āđ€āļ—āļĻāļ—āļĩāđˆāļˆāļ°āđ€āļāđ‡āļšāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ•āđˆāļēāļ‡āđ† āđ‚āļ”āļĒāļĄāļĩāđāļ­āļ•āļ—āļĢāļīāļšāļīāļ§āļ•āđŒ name āđ€āļ›āđ‡āļ™āļŠāļ·āđˆāļ­āļ‚āļ­āļ‡āļ›āļĢāļ°āđ€āļ—āļĻ area āđ€āļ›āđ‡āļ™āļ‚āļ™āļēāļ”āļžāļ·āđ‰āļ™āļ—āļĩāđˆāļĄāļĩāļŦāļ™āđˆāļ§āļĒāđƒāļ™āļ•āļēāļĢāļēāļ‡āļāļīāđ‚āļĨāđ€āļĄāļ•āļĢ āđāļĨāļ° population āđ€āļ›āđ‡āļ™āļˆāļģāļ™āļ§āļ™āļ›āļĢāļ°āļŠāļēāļāļĢāļ—āļąāđ‰āļ‡āļŦāļĄāļ”āđƒāļ™āļ›āļĢāļ°āđ€āļ—āļĻ āđāļĨāļ°āļ„āļĨāļēāļŠāļ™āļĩāđ‰āļĄāļĩāļŠāļ­āļ‡āđ€āļĄāļ˜āļ­āļ”āļ„āļ·āļ­ getPopulationDensity() āđ€āļ›āđ‡āļ™āđ€āļĄāļ˜āļ­āļ”āļŠāļģāļŦāļĢāļąāļšāļ„āļģāļ™āļ§āļ“āļ„āļ§āļēāļĄāļŦāļ™āļēāđāļ™āđˆāļ™āļ‚āļ­āļ‡āļ›āļĢāļ°āļŠāļēāļāļĢāļ•āđˆāļ­āļžāļ·āđ‰āļ™āļ—āļĩāđˆāļŦāļ™āļķāđˆāļ‡āļ•āļēāļĢāļēāļ‡āļāļīāđ‚āļĨāđ€āļĄāļ•āļĢ āđāļĨāļ°āđ€āļĄāļ˜āļ­āļ” showDetails() āļŠāļģāļŦāļĢāļąāļšāđāļŠāļ”āļ‡āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ—āļąāđ‰āļ‡āļŦāļĄāļ”āđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļ›āļĢāļ°āđ€āļ—āļĻ

c = Country('Thailand', 513120, 68863514)
c.setCordinate(13.75, 100.483333)
c.setCelsius(28.5)
c.showDetails()

c2 = Country('England', 130279, 55268100)
c2.setCordinate(51.5, -0.116667)
c2.setCelsius(9)
c2.showDetails()

c2 = Country('Canada', 9984670, 35151728)
c2.setCordinate(45.4, -75.666667)
c2.setCelsius(-3)
c2.showDetails()

āļŦāļĨāļąāļ‡āļˆāļēāļāļŠāļĢāđ‰āļēāļ‡āļ„āļĨāļēāļŠāđ€āļŠāļĢāđ‡āļˆāđāļĨāđ‰āļ§ āļ•āđˆāļ­āđ„āļ›āđ€āļ›āđ‡āļ™āļāļēāļĢāļ™āļģāļ„āļĨāļēāļŠ Country āļĄāļēāļŠāļĢāđ‰āļēāļ‡āļ­āļ­āļšāđ€āļˆāđ‡āļ„āļ‚āļ­āļ‡āļŠāļēāļĄāļ›āļĢāļ°āđ€āļ—āļĻāļ„āļ·āļ­ āđ„āļ—āļĒ āļ­āļąāļ‡āļāļĪāļĐ āđāļĨāļ°āđāļ„āļ™āļēāļ”āļē āđ‚āļ”āļĒāđƒāļ™āđāļ•āđˆāļĨāļ°āļ­āļ­āļšāđ€āļˆāđ‡āļ„āđ„āļ”āđ‰āļāļģāļŦāļ™āļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ­āļ‡āļ›āļĢāļ°āđ€āļ—āļĻ āļāļģāļŦāļ™āļ”āļžāļīāļāļąāļ”āļ”āđ‰āļ§āļĒāđ€āļĄāļ˜āļ­āļ” setCordinate() āļāļģāļŦāļ™āļ”āļ­āļļāļ“āļŦāļ āļđāļĄāļīāļ”āđ‰āļ§āļĒāđ€āļĄāļ˜āļ­āļ” setCelsius() āđāļĨāļ°āļŠāļļāļ”āļ—āđ‰āļēāļĒāđ€āļĢāļĩāļĒāļāļ”āļđāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ—āļąāđ‰āļ‡āļŦāļĄāļ”āļ”āđ‰āļ§āļĒāđ€āļĄāļ˜āļ­āļ” showDetails()

Country: Thailand
Area: 513120.00 sq km
Population: 68863514
Density: 134.21 person per sq km
Decimal cordinate: 13.75, 100.483333
Time zone: +7
Climate: Tropical zone
Temperature in Celsius: 28.50 degree
Temperature in Fahrenheit: 83.30 degree
Temperature in Kelvin: 301.65
The weather is hot

Country: England
Area: 130279.00 sq km
Population: 55268100
Density: 424.23 person per sq km
Decimal cordinate: 51.5, -0.116667
Time zone: -1
Climate: Temperate zone
Temperature in Celsius: 9.00 degree
Temperature in Fahrenheit: 48.20 degree
Temperature in Kelvin: 282.15
The weather is cold

Country: Canada
Area: 9984670.00 sq km
Population: 35151728
Density: 3.52 person per sq km
Decimal cordinate: 45.4, -75.666667
Time zone: -7
Climate: Temperate zone
Temperature in Celsius: -3.00 degree
Temperature in Fahrenheit: 26.60 degree
Temperature in Kelvin: 270.15
The weather is freezing

āļ™āļĩāđˆāđ€āļ›āđ‡āļ™āļœāļĨāļĨāļąāļžāļ˜āđŒāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āļāļēāļĢāđāļŠāļ”āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļēāļ‡āļ āļđāļĄāļīāļĻāļēāļŠāļ•āļĢāđŒ āļ­āļļāļ“āļŦāļ āļđāļĄāļīāđāļĨāļ°āļŠāļ āļēāļžāļ­āļēāļāļēāļĻāļ‚āļ­āļ‡āđāļ•āđˆāļĨāļ°āļ›āļĢāļ°āđ€āļ—āļĻ āđƒāļ™āļ•āļ­āļ™āļ™āļĩāđ‰āļ„āļļāļ“āđ€āļŦāđ‡āļ™āđāļĨāđ‰āļ§āļ§āđˆāļēāđ€āļĢāļēāđ„āļ”āđ‰āđƒāļŠāđ‰āļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ”āļ„āļĨāļēāļŠāđ€āļžāļ·āđˆāļ­āļ—āļģāđƒāļŦāđ‰āļ„āļĨāļēāļŠ Country āļĄāļĩāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ—āļĩāđˆāļŦāļĨāļēāļĒāļŦāļĨāļēāļāđ€āļŦāļĄāļ·āļ­āļ™āļāļąāļš super class āļ‚āļ­āļ‡āļĄāļąāļ™

Method overriding

āļŠāļģāļŦāļĢāļąāļšāđ€āļĢāļ·āđˆāļ­āļ‡āļŠāļļāļ”āļ—āđ‰āļēāļĒāđƒāļ™āļšāļ—āļ™āļĩāđ‰ āļˆāļ°āđ€āļ›āđ‡āļ™āļāļēāļĢāđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰āđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļāļēāļĢ override āđ€āļĄāļ˜āļ­āļ” āļ‹āļķāđˆāļ‡āļ„āļ·āļ­āļāļēāļĢāļ—āļĩāđˆ sub class āļ—āļģāļāļēāļĢāļāļģāļŦāļ™āļ”āļāļēāļĢāļ—āļģāļ‡āļēāļ™āđƒāļŦāđ‰āļāļąāļšāđ€āļĄāļ˜āļ­āļ”āļˆāļēāļ super class āđƒāļŦāļĄāđˆ āđ‚āļ”āļĒāļĒāļąāļ‡āļ„āļ‡āđƒāļŠāđ‰āļŠāļ·āđˆāļ­āđ€āļ”āļīāļĄ āļ‹āļķāđˆāļ‡āļˆāļ°āļ—āļģāđƒāļŦāđ‰āđ€āļāļīāļ”āļ„āļĨāļēāļŠāđƒāļŦāļĄāđˆāđƒāļ™āļšāļĢāļīāļšāļ—āļ‚āļ­āļ‡ sub class āđāļĨāļ°āđ€āļĄāļ˜āļ­āļ”āļˆāļēāļ super class āļˆāļ°āđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āđ„āļ”āđ‰ āļĄāļēāļ”āļđāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ

class Animal:

    def move(self):
        print('Animal is moving')

class Dog(Animal):

    def move(self):
        print('Dog is running')

    def parentMove(self):
        print('Call parent method')
        Animal.move(self)

a = Animal()
a.move()

d = Dog()
d.move()
d.parentMove()

āđƒāļ™āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡ āđ€āļĢāļēāđ„āļ”āđ‰āļŠāļĢāđ‰āļēāļ‡āļ„āļĨāļēāļŠ Animal āđ‚āļ”āļĒāļ„āļĨāļēāļŠāļ™āļĩāđ‰āļĄāļĩāđ€āļĄāļ˜āļ­āļ” move() āļŠāļģāļŦāļĢāļąāļšāđāļŠāļ”āļ‡āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļāļēāļĢāđ€āļ„āļĨāļ·āđˆāļ­āļ™āļ—āļĩāđˆāļ‚āļ­āļ‡āļŠāļąāļ•āļ§āđŒ āļ•āđˆāļ­āļĄāļēāđ€āļĢāļēāđ„āļ”āđ‰āļŠāļĢāđ‰āļēāļ‡āļ„āļĨāļēāļŠ Dog āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āļ„āļĨāļēāļŠāļ—āļĩāđˆāļŠāļ·āļšāļ—āļ­āļ”āļĄāļēāļˆāļēāļāļ„āļĨāļēāļŠ Animal āđƒāļ™āļ„āļĨāļēāļŠ Dog āđ€āļĢāļēāđ„āļ”āđ‰āļ—āļģāļāļēāļĢāđ€āļ‚āļĩāļĒāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āđ€āļĄāļ˜āļ­āļ” move() āđƒāļŦāļĄāđˆ āđ€āļžāļ·āđˆāļ­āļšāļ­āļāļ§āđˆāļēāļāļēāļĢāđ€āļ„āļĨāļ·āđˆāļ­āļ™āļ—āļĩāđˆāļ‚āļ­āļ‡āļŦāļĄāļēāļ™āļąāđ‰āļ™āļ„āļ·āļ­āļāļēāļĢāļ§āļīāđˆāļ‡ āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āđ€āļĄāļ˜āļ­āļ”āđƒāļ™āļ„āļĨāļēāļŠāļŦāļĨāļąāļāļˆāļķāļ‡āļ–āļđāļāļ—āļąāļšāđ„āļ›

āļ­āļĒāđˆāļēāļ‡āđ„āļĢāļāđ‡āļ•āļēāļĄ āđ€āļĢāļēāļĒāļąāļ‡āļ„āļ‡āļŠāļēāļĄāļēāļĢāļ–āđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰āļ‡āļēāļ™āđ€āļĄāļ˜āļ­āļ”āļˆāļēāļāļ„āļĨāļēāļŠāļŦāļĨāļąāļāđ„āļ”āđ‰ āđƒāļ™āđ€āļĄāļ˜āļ­āļ” parentMove() āđ€āļ›āđ‡āļ™āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰āļ‡āļēāļ™āđ€āļĄāļ˜āļ­āļ”āļˆāļēāļ super class āđƒāļ™āļ„āļģāļŠāļąāđˆāļ‡ Animal.move(self) āđƒāļ™āļ•āļ­āļ™āļ™āļĩāđ‰āļ–āļķāļ‡āđāļĄāđ‰āļ§āđˆāļēāđ€āļĢāļēāļˆāļ°āđ„āļ”āđ‰āļ—āļģāļāļēāļĢ override āđ€āļĄāļ˜āļ­āļ”āļ™āļĩāđ‰āđ„āļ›āđāļĨāđ‰āļ§ āđāļ•āđˆāđ€āļĢāļēāļāđ‡āļĒāļąāļ‡āļŠāļēāļĄāļēāļĢāļ–āđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰āļĄāļąāļ™āđ„āļ”āđ‰āđ€āļŠāđˆāļ™āđ€āļ”āļīāļĄ

Animal is moving
Dog is running
Call parent method
Animal is moving

āļ™āļĩāđˆāđ€āļ›āđ‡āļ™āļœāļĨāļĨāļąāļžāļ˜āđŒāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ āļˆāļ°āđ€āļŦāđ‡āļ™āļ§āđˆāļēāļāļēāļĢ override āđ€āļĄāļ˜āļ­āļ”āļ™āļąāđ‰āļ™āđ€āļ›āđ‡āļ™āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™āļ—āļąāļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āđ€āļĄāļ˜āļ­āļ”āļ‚āļ­āļ‡ super class āļ™āļĩāđˆāļĄāļąāļāļˆāļ°āđƒāļŠāđ‰āđƒāļ™āļāļĢāļ“āļĩāļ—āļĩāđˆāļ„āļļāļ“āļ•āđ‰āļ­āļ‡āļāļēāļĢāļāļēāļĢāļ—āļģāļ‡āļēāļ™āđƒāļŦāļĄāđˆāļ—āļĩāđˆāđāļ•āļāļ•āđˆāļēāļ‡āļˆāļēāļāđ€āļ”āļīāļĄ āđāļ•āđˆāļĒāļąāļ‡āļ„āļ‡āļ•āđ‰āļ­āļ‡āļāļēāļĢāđƒāļŠāđ‰āļŠāļ·āđˆāļ­āđ€āļĄāļ˜āļ­āļ”āđ€āļ”āļīāļĄāļ­āļĒāļđāđˆ āđāļĨāļ°āđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāļ—āļĩāđˆāļˆāļ°āđ„āļ›āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āđ€āļĄāļ˜āļ­āļ”āđƒāļ™ super class

āđƒāļ™āļšāļ—āļ™āļĩāđ‰ āļ„āļļāļ“āđ„āļ”āđ‰āđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰āđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ”āļ„āļĨāļēāļŠāđƒāļ™āļ āļēāļĐāļē Python āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āđāļ™āļ§āļ„āļīāļ”āļāļēāļĢāļ™āļģāđ‚āļ„āđ‰āļ”āđ€āļ”āļīāļĄāļāļĨāļąāļšāļĄāļēāđƒāļŠāđ‰āđ‚āļ”āļĒāļ—āļĩāđˆāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļŠāļĢāđ‰āļēāļ‡āļ„āļĨāļēāļŠāđƒāļŦāļĄāđˆāļ—āļĩāđˆāļĄāļĩāđāļ­āļ•āļ—āļĢāļīāļšāļīāļ§āļ•āđŒāđāļĨāļ°āđ€āļĄāļ˜āļ­āļ”āđ€āļŦāļĄāļ·āļ­āļ™āļāļąāļ™āđƒāļŦāļĄāđˆāļ—āļąāđ‰āļ‡āļŦāļĄāļ” āļ‹āļķāđˆāļ‡āļ™āļĩāđˆāļˆāļ°āļ—āļģāđƒāļŦāđ‰āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāļ‡āļēāļ™āđ„āļ”āđ‰āđ€āļĢāđ‡āļ§āļ‚āļķāđ‰āļ™ āđāļĨāļ°āļ™āļ­āļāļˆāļēāļāļ™āļĩāđ‰āļ„āļļāļ“āļĒāļąāļ‡āđ„āļ”āđ‰āđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰āđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļāļēāļĢāļŠāļ·āļšāļ—āļ­āļ”āđāļšāļšāļŦāļĨāļēāļĒāļ„āļĨāļēāļŠ āđāļĨāļ°āļāļēāļĢ override āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āđ€āļĄāļ˜āļ­āļ”

Reference:

Last updated