python之面向对象(属性、继承、多态)

属性

定义类

class 类名:
	
	class Person():   #或者   class Person(object):    object代表所有类的父类
		#属性
		name="zs"
		
		#初始化方法
		#def __init__(self):
			#self.sex = 33
			
		def __init__(self, sex):
			self.sex = sex
			
		#私有属性	
		__pwd = "123456"
		
		
		#给私有属性提供get和set方法
		def setPwd(self, pwd):
				self.__pwd = pwd

		def getsetPwd(self):
			return self.__pwd
		
		
		#定义方法
		def say(self):
			#print("{真好看")
			print(f"{self.name}真好看")
			print(self)
			
			
		# 类方法
		@classmethod
		def sleep(cls):
			#print("{正在睡觉")
			print(f"{cls.name}正在睡觉")
			
			
		# 静态方法
		@staticmethod
		def playDD():
			print("正在打豆豆")
  1. 定义方法
    在这里插入图片描述

  2. 定义初始化方法
    在这里插入图片描述
    在这里插入图片描述

  3. 私有属性
    在这里插入图片描述

  4. 类方法
    在这里插入图片描述

  5. 类方法
    在这里插入图片描述

对象

对象名 =  类名()
	
	person = Person()
	person2 = Person()
	print(person)
	print(person2)

在这里插入图片描述

案例代码

class Person():
    # pass
    name = "zs"
    sex = "女"

    # 定义方法
    def test(self):
        print("世界真美好")

    # 定义初始化方法
    # def __init__(self):
    #     self.remark = "gym"

    def __init__(self, abc):
        self.abc = abc

     #定义私有属性
    __pwd = "666666"

    #给私有属性提供get和set方法
    def setPwd(self,pwd):
        self.__pwd = pwd

    def getPwd(self):
        return self.__pwd

    #类方法
    @classmethod
    def sleep(cls):
        print("okok")

     #静态方法
    @staticmethod
    def sleep2():
        print("okok2")



#实例化对象
person = Person("123")
person2 = Person("456")



# person.name = "ls"
# Person.name = "ww"
# person.age = 18


# print(person.age)
# print(person2.age)
# print(person.name)
# print(person2.name)
# print(Person.name)

# person.test()

# print(person.remark)

# print(person.abc)

# person.setPwd("888") #赋值
# print(person.getPwd())  #取值/调用

# person.sleep()
# Person.sleep()

# person.sleep2()
# Person.sleep2()


继承

可以继承多个父亲,但是如果父亲中有相同的属性或者方法时,以第一个父亲为准
如果想调用具体父亲的属性和方法
具体父亲的名字.属性名
具体父亲的名字.方法名

如何查看一个类的继承关系
print(Son.mro)

案例代码

"""
继承
"""
# 定义父类


class Father(object):

    money = 2222.22

    def cook(self):
        print("会炒菜")

    def eat(self):
        print("会吃")


class Mother(object):

    money = 22222.22

    def cook(self):
        print("会煮面条")

    def playMJ(self):
        print("打麻将")


class Son(Mother, Father):
    # money = 22.22

    def cook(self):
        # 调用父类的cook方法
        # 01
        # Father.cook(self)
        # Mother.cook(self)

        # 02
        #super().cook()
        print("煮泡面")


son = Son()
print(son.money)
son.cook()
# son.eat()
# son.playMJ()

# 查看类的继承关系
# print(Son.__mro__)



在这里插入图片描述

多态

案例代码

"""
多态
水:
气体:
液体:
固体:
"""


class Water(object):
    def use(self):
        pass


class Gas(Water):
    def use(self):
        print("这是气体的水,可以用来蒸饺子")


class Yt(Water):
    def use(self):
        print("这是液体的水,可以用来煮饺子")


class Gt(Water):
    def use(self):
        print("这是固体的水,可以用来冻饺子")


class Person(object):
    def cook(self, water):
        water.use()

person = Person()
gas = Gas()
yt = Yt()
gt = Gt()
person.cook(gt)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值