类的定制和继承是什么?
类的继承
#类的继承
#广东人属于中国人
#广东人继承的中国人的属性和方法(黑眼睛、用筷子)
#继承作用:子类白手起家,直接调用
类的定制
#类的定制
#子类不但继承了父类属性和方法,还可以修改父类的属性和方法
#子类还可以有自己的属性和方法
#类定制作用:以我为主,为我所用
类的继承要怎么写?
继承基础语法
class Chinese:#父类,无括号向上无父类
pass
class Cantonese(Chinese):#创建继承,首字母大写
pass
gonger = Chinese()#父类创建实例
yewen = Cantonese()#子类创建实例
#子类创建的实例同时也属于父类
print('\n验证1:子类创建的实例同时也属于父类')
print(isinstance(gonger,Chinese))
print(isinstance(yewen,Chinese))
#父类创建的实例不属于子类
print('\n验证2:父类创建的实例不属于子类。')
print(isinstance(gonger,Cantonese))
#类创建的实例都属于根类
print('\n验证3:类创建的实例都属于根类。')
print(isinstance(gonger,object))
print(isinstance(yewen,object))
继承之多层继承
class Earthman:
eye_number = 2
# 中国人继承了地球人
class Chinese(Earthman):
eye_color = 'black'
# 广东人继承了中国人,同时也继承了地球人。
class Cantonese(Chinese):
pass
# 子类可调用所有父类的属性和方法
yewen = Cantonese()
print(yewen.eye_number)
print(yewen.eye_color)
继承的多重继承
class Su:
born_city = 'Jiangsu'
wearing = 'thick' # 穿得较厚
def diet(self):
print('我们爱吃甜。')
class Yue:
settle_city = 'Guangdong'
wearing = 'thin' # 穿得较薄
def diet(self):
print('我们吃得清淡。')
# 就近原则,多重继承。
class Yuesu(Yue,Su):
pass
xiaoming = Yuesu()
print(xiaoming.wearing)
print(xiaoming.born_city)
xiaoming.diet()
类的定制要怎么写
定制,可以新增代码
class Chinese:
eye = 'black'
def eat(self):
print('吃饭,选择用筷子。')
class Cantonese(Chinese): # 类的继承
native_place = 'guangdong' # 类的定制,定制属性
def dialect(self): # 类的定制,定制方法
print('我们会讲广东话。')
yewen = Cantonese()
print(yewen.eye)
# 父类的属性调用
print(yewen.native_place)
# 子类的定制属性也能用
yewen.eat()
# 父类的方法能用
yewen.dialect()
# 子类的定制方法也能用
定制,也可以重写代码
gonger = Chinese()
yewen = Cantonese()
gonger.land_area(96)
yewen.land_area(960)
class Chinese:
def land_area(self,area):
print('我们居住的地方,陆地面积是%d万平方公里左右。'% area)
class Cantonese(Chinese):
# 直接对方法进行重写
def land_area(self,area):
print('我们居住的地方,陆地面积是%d万平方公里左右。'% int(area*0.0188))
gonger = Chinese()
yewen = Cantonese()
gonger.land_area(96)
yewen.land_area(90)
class Chinese:
def __init__(self, greeting='你好', place='中国'):
self.greeting = greeting
self.place = place
def greet(self):
print('%s!欢迎来到%s。' % (self.greeting, self.place))
# 请为子类完成定制,代码量:两行。
class Cantonese(Chinese):
def __init__(self,greeting='雷猴', place='广东'):
Chinese.__init__(self,greeting,place)
yewen = Cantonese()
yewen.greet()
网友评论