继承

一. 单继承

  1. 继承的概念
    一般子女继承父辈
class Cat(object):#定义一个父类
     def __init__(self,name,color="黑色")
         self.name = name
         self.color = color

     def run(self):
         print("%s在跑"%self.name)

class Bosi(Cat):
     def setName(self,newname):
         self.name = newname

     def eat(self):
         print("%s在吃"%self.name)

bs = Bosi("印度猫")
print('bs的名字为:%s'%bs.name)
print('bs的颜色为:%s'%bs.color)
bs.eat()
bs.setnewname('波斯')
bs.run()

2.多继承

# 定义一个父类
class A:
def printA(self):
print('----A----')

# 定义一个父类
class B:
def printB(self):
print('----B----')

# 定义一个子类,继承自A、B
class C(A,B):
def printC(self):
print('----C----')

obj_C = C()
obj_C.printA()
obj_C.printB()

3.重写、调用父类方法

#coding=utf-8
class Cat(object):
def sayHello(self):
print("halou-----1")


class Bosi(Cat):

def sayHello(self):
print("halou-----2")

bosi = Bosi()

bosi.sayHello()

二. 静态方法和类方法

1、类方法

class People(object):
country = 'china'

#类方法,用classmethod来进行修饰
@classmethod
def getCountry(cls):
return cls.country
p = People()
print p.getCountry() #可以用过实例对象引用
print People.getCountry() #可以通过类对象引用

类方法还有一个用途就是可以对类属性进行修

class People(object):
country = 'china'

#类方法,用classmethod来进行修饰
@classmethod
def getCountry(cls):
return cls.country

@classmethod
def setCountry(cls,country):
cls.country = country


p = People()
print p.getCountry() #可以用过实例对象引用
print People.getCountry() #可以通过类对象引用

p.setCountry('japan')

print p.getCountry()
print People.getCountry()

你可能感兴趣的:(继承)