# 类的继承
class Po1:
pass
class Po2:
pass
class Subclass(Po1): # 单继承
pass
class Subclass(Po1,Po2): # 多继承
pass
class Dad:
money = 10
def __init__(self,name):
print("爸爸")
self.name = name
def hit_son(self):
print("%s 打儿子" %self.name)
class Son(Dad):
pass
s1 = Son("li") # 爸爸
print(s1.name) # li
print(s1.money) # 10
s1.hit_son() # li 打儿子
# 先从子类寻找,没有就继承父类
# 类之间显著不同,用组合较好,类之间有很多相同功能,用继承较好
# 接口继承
import abc
class All_file(metaclass=abc.ABCMeta): # 归一化下面的类必须实现这里面的方法
@abc.abstractmethod
def read(self):
pass
@abc.abstractmethod
def write(self):
pass
class Disk(All_file):
def read(self):
print("disk read")
def write(self):
print("disk write")
class Cdrom(All_file):
def read(self):
print("cdrom read")
def write(self):
print("cdrom write")
class Mem(All_file):
def read(self):
print("mem read")
def write(self):
print("mem write")
# 子类调用父类方法
class Jiaotong:
Country = "China"
def __init__(self,name,speed,load,power):
self.name = name
self.speed = speed
self.load = load
self.power = power
def run(self):
print("开动")
class Subway(Jiaotong):
def __init__(self,name,speed,load,power,line):
# Jiaotong.__init__(self,name,speed,load,power)
super().__init__(name,speed,load,power)
self.line = line
def show_info(self):
print(self.name,self.speed,self.load,self.power,self.line)
def run(self):
# Jiaotong(self)
super().run()
print("%s %s ,开动了" %(self.name,self.line))
line1 = Subway("1号线","10Km/s",1000,"电",12)
line1.show_info() # 1号线 10Km/s 1000 电 12
line1.run()
# 开动
# 1号线 12 ,开动了