大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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()
小结
- 执行对象.方法时,优先去当前对象所关联的类中找,没有再去父类找
- 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)是动态类型的一种风格,在鸭子类型中,关注点在于对象的行为,能做什么;而不是关心对象所属的类
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/209847.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...