python 多态与继承_Python中的类继承与多态

class annimal(object):

def __init__(self,name,age=0):

self.name = name # 在这定义成员变量

self.age = age

self.public=11

self._private=63#私有属性

print("我是annimal")

def eat(self):

print("annimal eat")

def special(self):

print("我是独有的方法"+self.name)

def __del__(self):

print("annima销毁了")

def _private(self):#私有方法

print("我是私有方法")

class Dog(annimal):

def __init__(self,name,age=0):#self隐藏的,后面要写参数时需要self写出来,这是初始化函数

super().__init__(name,age)#初始化父类

print("我是dog")

def eat(self):

print(self.name+"吃骨头")#成员变量的复用

super().eat()#调用父类的方法

def __str__(self):#对对象输出时打印return的语句,不然打印的是地址

return "我被打印了"

def __del__(self):

print(self.name+"自动销毁了")#对象回收时调用

mydog=Dog("旺财",3)

print(mydog.name)#直接获得成员变量

mydog.eat()

print(mydog)

mydog.special()

print(mydog.public)

#多继承

class A():

def a(self):

print("我是A")

class B():

def b(self):

print("我是b")

pass

class C(A,B):

pass

c=C()

c.a()

#在一对象调用另一对象,以及多态的实现

class dog():

def __init__(self,name):

self.name=name

def play(self):

print("一般狗玩耍")

class xiaotianquan(dog):

def play(self):

print("会咆哮")

class person():

def __init__(self,name):

self.name=name

self.dog=0

def playwithdog(self,dog):#直接传对象

print(dog.name)

def playwithdog1(self):

self.dog.play()

xiaoming=person("小明")

dog1=dog("狗爹")

xiao=xiaotianquan("旺财")

xiao1=xiaotianquan("小黑")

xiaoming.playwithdog(xiao)

xiaoming.playwithdog(dog1)#多态的实现

xiaoming.dog=xiao1

xiaoming.playwithdog1()

"""

1.将对象传入另一对象的参数中,直接从方法入口进入

2.另一种是初始化时将调用对象看成成员变量self.dog=0,默认赋值。下面需要调用他得方法时直接用

"""

#类属性,放在方法之外

class Tool():

count=0#类属性

def __init__(self):

Tool.count+=1

t1=Tool()

t2=Tool()

t3=Tool()

print(Tool.count)

#类方法

class Tool1():

count=0#类属性

@classmethod#类方法

def coutt(cls):

print(cls.count)

@staticmethod

def static():#不要self

print("我是静态方法")

def __init__(self):

Tool1.count += 1

t11=Tool1()

t21=Tool1()

t31=Tool1()

Tool1.coutt()

Tool1.static()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值