12.继承和多态

本文介绍了Python编程中关于继承和多态的概念。通过一系列判断题、填空题和选择题,详细解释了子类如何覆盖父类的方法,Python的多态特性,如鸭子类型,以及如何通过`super()`调用父类方法。同时,讨论了Python类的继承顺序,`__init__`方法的调用,以及如何显式调用父类方法。此外,还探讨了私有方法的不可覆盖性,`isinstance()`函数的使用,以及如何利用`mro`来确定类的继承顺序。
摘要由CSDN通过智能技术生成

一、判断题(共10小题,10分)
题型得分 8
在子类中可以覆盖其父类中定义的非私有方法。
【来源】
《Python程序设计基础》第8章思考与练习。(1分)
A. 对
B. 错
我的答案:
A
题目得分 1
python是一种多态语言,崇尚鸭子类型。在鸭子类型中,并不关心对象是什么类型,只关心对象的行为。(1分)
A. 对
B. 错
我的答案:
A
题目得分 1
mro表示类继承的顺序。
【来源】
《Python程序设计基础》第8章思考与练习。(1分)
A. 对
B. 错
我的答案:
A
题目得分 1
创建子类对象时,会自动调用其父类中定义的__init__方法。
【来源】
《Python程序设计基础》第8章思考与练习。(1分)
A. 对
B. 错
我的答案:
A
题目得分 0
子类是父类的子集。
【来源】
《Python程序设计基础》第8章思考与练习。(1分)
A. 对
B. 错
我的答案:
B
题目得分 1
所有类都派生自object类。
【来源】
《Python程序设计基础》第8章思考与练习。(1分)
A. 对
B. 错
我的答案:
B
题目得分 0
在子类中可以覆盖其父类中定义的私有方法。
【来源】
《Python程序设计基础》第8章思考与练习。(1分)
A. 对
B. 错
我的答案:
B
题目得分 1
在子类中可以覆盖其父类中定义的__init__方法。
【来源】
《Python程序设计基础》第8章思考与练习。(1分)
A. 对
B. 错
我的答案:
A
题目得分 1
如果定义一个类时没有指定继承哪个类,则默认继承object类。
【来源】
《Python程序设计基础》第8章思考与练习。(1分)
A. 对
B. 错
我的答案:
A
题目得分 1
在子类中可以通过“父类名.方法名”的方式显式调用父类中的方法。
【来源】
《Python程序设计基础》第8章思考与练习。(1分)
A. 对
B. 错
我的答案:
A
题目得分 1
二、填空题(共15小题,30分)
题型得分 24
下面程序的输出结果为________(注意:不要有任何多余的空格)。

class Animal:
def msg(self):
return “Can Move.”

class Vertebrate:
def msg(self):
return “Has a backbone.”

def main():
creature = Vertebrate()
print(creature.msg(), isinstance(creature, Animal))

main()

(2分)
我的答案:
Has a backbone. False
题目得分 2
通过________(注:填写中文)将数据和对数据的处理过程封装为一个有机的整体。
(2分)
我的答案:
封装
题目得分 0
下面程序的输出结果为________ (注意:不要有任何多余的空格)。

class Animal:
def msg(self):
return “Can Move.”

class Vertebrate(Animal):
def msg(self):
return “Has a backbone.”

def main():
creature = Vertebrate()
print(creature.msg(), isinstance(creature, Animal))

main()
(2分)
我的答案:
Has a backbone. True
题目得分 2
下面程序的下画线处为调用B的父类的构造方法,正确的语句是________(注意:不要有任何多余的空格) 。

class A:
def init(self, i = 1):
self.i = i

class B(A):
def init(self, j = 2):
___________________
self.j = j

def main():
b = B()
print(b.i, b.j)

main()

(2分)
我的答案:
super().init()
题目得分 2
下面程序的输出结果为________。
class A:
def init(self):
print(‘A’, end = ‘#’)

class B(A):
def init(self, x):
super().init()
self.__x = x
print(‘B’)

b = B(3)
【来源】
《Python程序设计基础》第8章思考与练习。
(2分)
我的答案:
A#B
题目得分 2
下面程序的输出结果为________。
class A:
def init

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值