用三个实例说明python类多态和重载。

用三个实例说明python类多态和重载。


#coding:utf-8


"""


本代码写在2013-1-7日下午4:00


先前写的代码有误,重新写一个。


由sina微博"python爱好者所写",提供"python培训_python从零基础到网页采集和web开发培训"


http://www.qy7788.com.cn/shiyongxinxi/shiyongxinxi161.html


用三个实例说明python类多态和重载。


同一个类中相同函数名,不同参数或参数个数实现重载。


python子类中重写父类中的方式,就覆盖了父类的方法。


python也可以实现多态,但重载不支持。


注意覆盖父类的__init__方法有2种调用方式






"""


class MyClass(object):


   def __init__(self,name,address,telelphone,text):


       """self.name = "黄老师"


       self.address = "北京市海淀区永定路东街乙六号东轻宾馆206室"


       self.telephone = "010-68165761"


       """


       self.name = name


       self.address = address


       self.telelphone = telelphone


       self.text = text






   def print_test(self,name):


       print self.name


       


   def print_test(self,address):


       print self.address


       


   def print_test(self,telelphone):


       print self.telelphone


       


   def print_test(self,text):


       print self.text










       


name = "黄老师"


address = "北京市海淀区永定路东街乙六号东轻宾馆206室"


telephone = "010-68165761 qq:1465376564"


text = "python培训_python从零基础到网页采集和web开发培训"


       


mytest =MyClass(name,address,telephone,text)


mytest.print_test(name)


mytest.print_test(address)


mytest.print_test(telephone)


mytest.print_test(text)










#python实现多态实例一,注意覆盖父类的__init__方法有2种调用方式


class AA(object):


   def __init__(self):


       pass


   def get(self):


       d=5


       return d


   


class BB(AA):


   def __init__(self):


       AA.__init__(self)


   def get(self):


       d=3


       return d


class DD(AA):


   def __init__(self):


       AA.__init__(self)


   def get(self):


       d=4


       return d










def getNum(cc):


   print cc.get()






first = AA()


second = BB()


third = DD()






getNum(first)


getNum(second)


getNum(third)






















#python实现多态实例二


class Animal(object):


   def __init__(self):


       pass


   def Eat(self):


       pass










class Chicken(Animal):


   def __init__(self):


       super(Chicken, self).__init__()


   def Eat(self):


       print 'the chicken has been eat'










class Dog(Animal):


   def __init__(self):


       super(Dog, self).__init__()


   def Eat(self):


       print 'the dog has been eat'










#实现一个调用的方法,这里也用类来实现吧


class Person(object):


   """


    只需要通过参数来确定调用哪个方法。这只是python实现多态的一种.


   """


   def __init__(self,name):


       self.name = name


   def Feed(self, ped):


       ped.Eat()














Kobe = Person('Kobe')#给调用者取个名字吧


pedChicken = Chicken()#建立一个小鸡宠物


pedDog = Dog()#建立一个小狗宠物


Kobe.Feed(pedChicken)#Feed方法根据传入的参数不同调用


Kobe.Feed(pedDog)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值