Python类(四)-多态

多态即一个接口,多种实现

按照平常直接调用

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"

class Person(object):
    def __init__(self,name):
        self.name = name

class Student(Person):
    def talk(self):
        print('%s is studying'%self.name)

class Teacher(Person):
    def talk(self):
        print('%s is teaching'%self.name)

if __name__ == '__main__':
    Student('John').talk()
    Teacher('Jane').talk()

通过定义函数来实现多态

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"

class Person(object):
    def __init__(self,name):
        self.name = name

class Student(Person):
    def talk(self):
        print('%s is studying'%self.name)

class Teacher(Person):
    def talk(self):
        print('%s is teaching'%self.name)

def Person_Talk(n):
    n.talk()

if __name__ == '__main__':
    s = Student('John')
    t = Teacher('Jane')
    Person_Talk(s)
    Person_Talk(t)

 通过父类调用来实现多态

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"

class Person(object):
    def __init__(self,name):
        self.name = name

    @staticmethod
    def Person_Talk(n):
        n.talk()
    
class Student(Person):
    def talk(self):
        print('%s is studying'%self.name)

class Teacher(Person):
    def talk(self):
        print('%s is teaching'%self.name)

if __name__ == '__main__':
    s = Student('John')
    t = Teacher('Jane')
    Person.Person_Talk(s)
    Person.Person_Talk(t)

 

posted @ 2018-01-26 22:15  Sch01aR#  阅读(173)  评论(0编辑  收藏  举报