1.多态
python面向对象三大特征:封装、继承和多态。
多态(polymorphism)是指同一个方法调用由于对象不同可能会产生不同的行为; 在现实生活中, 我们有很多例子;
比如: 同样是调用人的休息方法, 张三的休息是睡觉, 李四的休息是玩游戏, 王五的休息是逛街;
同样是吃饭的方法, 中国人用筷子吃饭, 英国人用刀叉吃饭, 印度人用手吃饭;
在我们python的面向对象里就是不同的对象在接收相同方法或者函数时会产生不同的行为,
也就是说,每个对象可以用自己的方式去响应共同的函数,不同的方式实现不同的结果。
关于多态 要注意以下两点
1.多态是方法的多态,属性没有多态
2.多态的存在有两个2个必要条件:继承,方法重写
//# 多态
# 多态(polymorphism)是指同一个方法调用由于对象不同可能会产生不同的行为; 在现实生活中, 我们有很多例子;
# 比如: 同样是调用人的休息方法, 张三的休息是睡觉, 李四的休息是玩游戏, 王五的休息是逛街;
# 同样是吃饭的方法, 中国人用筷子吃饭, 英国人用刀叉吃饭, 印度人用手吃饭;
#
# 在我们python的面向对象里就是不同的对象在接收相同方法或者函数时会产生不同的行为,
# 也就是说,每个对象可以用自己的方式去响应共同的函数,不同的方式实现不同的结果。
#
# 关于多态 要注意以下两点
# 1.多态是方法的多态,属性没有多态
# 2.多态的存在有两个2个必要条件:继承,方法重写
class Animals:
def shout(self):
print('Animals叫了一声,我是父类')
class Dog(Animals):
def shout(self): #只有继承和重写父类方法,才能有多态,不然都是一样的,不存在多态
print('小狗汪汪汪')
class Pig(Animals):
def shout(self):
print('小猪昂昂昂')
D=Dog()
D.shout()
S=Pig()
S.shout() #多态:一个方法名调用,根据对象的不同,调用不同的方法
# 他们方法名虽然一样,但是内容不一样且对象不一样,故每个对象调用的同名方法都是不一样的
print('-------------------------------------')
# python3
# 抽象基类
# abc.