python面向对象
程序员文章站
2022-07-10 08:23:31
...
#类
class Sup:
"""父类"""
#属性---------------------------
#默认就是公开属性
name="公开属性"
#私有属性:属性名前面加两个下划线。
__age=0
#构造方法-----------------------
def __init__(self, arg):
self = arg
#封装的两种方式-----------------
#第一种:装饰器
#使用装饰器封装getter方法要写在setter方法前面
#get方法
@property
def age(self):
return self.__age
#set方法
@age.setter
def age(self,agr):
self.__age=agr
#第二种:写get/set方法
def getAge(self):
return self.__age
def setAge(self,agr):
self.__age=agr
#方法---------------------------
#方法分为对象方法、类方法、静态方法
#1.对象方法
def myObjeectMethod(self):
"""对象方法"""
print("这是对象方法")
#2.类方法:
@classmethod
def myClassMethod(self):
"""类方法"""
print("这是类方法")
@staticmethod
def myStaticMethod():
"""静态方法
注意:静态方可以不用带默认参数self,但是静态方法定义了几个参数那么在调用的时候就必须传入几个参数。
"""
print("这是静态方法")
#-------------------------------------------
#实例sup对象
sup=Sup(5)
#方法调用------------------------------------
#调用装饰器方法:不能加括号,和属性使用方法类似
sup.age=10 #赋值
print(sup.age) #得值
#调用get/set方法
sup.setAge(6)
print(sup.getAge())
#对象方法调用:通过对象点方法名
sup.myObjeectMethod()
#类方法调用:通过类名直接点方法名
Sup.myClassMethod()
#静态方法调用:静态方法可以通过类名或者对象调用
sup.myStaticMethod()
Sup.myStaticMethod()
#继承---------------------------------------
#python中支持多继承 class 类名(父类名1,父类名2,......)
class Sub(Sup):
"""子类"""
def __init__(self):
#通过super方法访问父类的构造方法
super(Sup, self).__init__()
#重写父类的myObjeectMethod()方法
def myObjeectMethod(self):
print("这是子类重写后的myObjeectMethod()方法")
#test---------------------------------------
sub=Sub()
sub.myObjeectMethod()
#多态--------------------------------------
#什么是多态?
#多态就是相同本质不同形态
#代码中体现多态把子类向上转型(里式替换原则)
sup=Sup(0)
sub=Sub()
sup=sub
sup.myObjeectMethod()
上一篇: Python_面向对象
下一篇: 06-Python-包&模块-虚拟环境