单继承
定义一个类,定义类里的方法,等等,完善之后,再定义一个类,继承上一个类的所有属性(私有属性除外)之后再输入内容,输出结果,这为单继承。
举个例子
class Cat (object):
def __init__(self,name,color = '白色'):
self.name = name
sel.color = color
def run(self):
print('%d一直在跑'%self.name)
class Bosi(Cat):
def setNewName(self,newName):
self.name = newName
def eat(self):
print('%s一直在吃'%self.name)
bs = Bosi('印度猫')
print('bs的名字为:'%bs.name)
print('bs的颜色为:%s'%bs.color)
bs.eat()
bs.setNewName('波斯')
bs.run()
1.在这个代码中,有两个类,第一个类为父类,第二个类为子类,子类中没有定义方法init,是因为父类中已经定义过了,在子类继承父类后,方法init也已经继承过来了,而且米默认执行,所以不用定义init.
2.继承父类,在子类的括号中,是父类的名字。
3. 当然,父类中的私有方法 不能通过继承来传递过来。(例如:__name)前边有下滑线的属性。
多继承
class (A):
def printA(self):
print('--a--')
class (B):
def printB(self):
print('--b--')
class C(A,B):
sef printC(self):
print('--c--')
ww = C()
ww.printA()
ww.printB()
在这个例子中,A,B,C三个类,C类继承了A和B两个类那么,C就有了A和B两个类的方法,也可以随意调用A,B类里的方法(除了私有方法)
注意
1.当B类中有和A类中相同的方法,如过想指定调用其中一个类中方法时,可以直接调用类名来指定是哪个类里的方法。到时候,嘿嘿,您想输出那个,还不是信手拈来吗。
2.当然,还有重写这一说,就是子类中和父类有相同的方法,在调用时,如果不强调时父类,那就会直接覆盖父类中的方法,输出子类中的方法。