python面向对象

#类
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()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值