继承概念:
当一个类定义了一些公共的方法时,其他的子类只要继承了这个类,就可以调用这个类中的一些方法,可用于简约代码量
继承类的写法:
class BaseClass:
xxxxx
class ZiClass(BaseClass):
xxxxx
一个类可以继承多个父类
继承中两个重要方法:1.覆盖式重写父类方法 2.对父类方法做修改---------需要通过super().方法名()来调用父类方法
class Lz: country = 'Beijing' house = 8 money = 99999 def driver(self): print('开车') def cook(self): print('做饭') def make_money(self): print('挣钱') class Lw: def majiang(self): print('majiang') def maicai(self): print('maicai') class Car: __key = '车轱辘下头' #私有的变量和私有的方法不能继承 def run(self): print(self.__key) print('run') '''覆盖式,直接重写了父类方法''' class CcxCar(Car): #--覆盖式,直接重写了父类方法 def run(self): print('拐弯跑。。') '''在父类方法的基础上做修改''' class TylCar(Car):#--在父类方法的基础上做修改 def run(self): super().run()#使用super()会自动找到父类 #Car.run(self)#当有多个父类时,这种方法不适用 print('充电') class Cmc(CcxCar): def fly(self): print('fly') class Xz(Lz,Lw): pass xz = Xz() xz.cook() xz.make_money() xz.driver() xz.majiang() tyl = TylCar() tyl.run()
抽象类:是一个规范,大家都必须遵守的一个规范,否则就会报错
无法单独实例化,只能被继承,通过子类重写父类方法才能实现功能。如果父类中有子类没实现的方法,则不合规范,会报错
抽象类定义的方法内容不会实现功能,意义在于子类必须要实现这个抽象类的方法才行,否则就是不符合规范
下面是一个关于水果抽象类的例子
import abc #利用abc模块实现一个抽象类 '''抽象类:是一个规范,大家都必须按照这个规范执行才行,无法单独实例化,只能被继承,定义的方法必须要子类来实现''' class Fruit(metaclass=abc.ABCMeta): @abc.abstractmethod def get_name(self): print('水果的名字') @abc.abstractmethod def taste(self): print('好吃么?') class Banana(Fruit): def get_name(self): print("这是香蕉") def taste(self): print("很好吃") banana = Banana() banana.get_name() banana.taste()