python面向对象三大特性,各有什么用处_面向对象语言三大特性

python面向对象三大特性,各有什么用处_面向对象语言三大特性python面向对象三大特性继承,封装,多态1.封装体现在两个方面:将同一类方法封装到了一个类中将数据封装到对象中,在实例化对象时,可以通过__init__初始化方法在对象中封装一些数据,便于以后使用2.继承子类继承父类中的方法和类变量(不是拷贝一份,父类还是属于父类,子类可以继承而已)父类又称基类子类又称派生类classBase:deffunc(self):print(“base”)#Son继承BaseclassSon(Base):

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

python面向对象三大特性

继承,封装,多态

1.封装

体现在两个方面:

  • 将同一类方法封装到了一个类中
  • 将数据封装到对象中,在实例化对象时,可以通过__init__初始化方法在对象中封装一些数据,便于以后使用

2.继承

子类继承父类中的方法和类变量(不是拷贝一份,父类还是属于父类,子类可以继承而已)

  • 父类又称基类
  • 子类又称派生类

在这里插入图片描述

class Base:
    def func(self):
        print("base")
#Son继承Base
class Son(Base):
    def show(self):
        print("son")
s1=Son()
s1.show()
#s1调用func(),自己没有,找父类
s1.func()

Jetbrains全家桶1年46,售后保障稳定

在这里插入图片描述

小结

  • 执行对象.方法时,优先去当前对象所关联的类中找,没有再去父类找
  • python支持多继承:先继承左边,在继承右边
  • 确认self到底是谁?去self对应的那个类中去获取成员,没有就按照继承关系向上查找
  • 继承存在的意义:将公共的方法提取到父类中,增强代码的重用性
  • 继承方式
    • 继承
    • 多继承
  • 调用类中的成员,规则
    • 优先在自己的类中找,没有去父类找
    • 存在多继承(多个父类),先左后右

3.多态

多态,字面意思就是多种形态

由于python对数据类型没有任何限制,所以他天生支持多态

def func(arg):
    v1=arg.copy()
    print(v1)
func(['wxy'])
func([1,2,3])
class Email(object):
    def send(self):
        print("发邮件")
class Message(object):
    def send(self):
        print("发短信")
def func(arg):
    v1=arg.send()
    print(v1)
v1=Email()
#将v1对象以参数的形式传入给func()函数
func(v1)
v2=Message()
#将v2对象以参数的形式传入给func()函数
func(v2)
# 发邮件
# None
# 发短信
# None

在程序设计中,鸭子类型(duck typing)是动态类型的一种风格,在鸭子类型中,关注点在于对象的行为,能做什么;而不是关心对象所属的类

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209847.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号