Python学习(十三)

本文详细介绍了面向对象编程的三大特征:封装、继承和多态,以及如何在Python中实现这些特性,包括构造函数的使用、继承层次结构、super()函数和重写__str__方法的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面向对象三大特征

封装(隐藏)

隐藏对象的属性和实现细节,只对外提供必要的方法。相当于将“细节封装起来”,只对外暴露“相关调用方法”。
通过前面学习的“私有属性、私有方法”的方式,实现“封装”。Python追求简洁的语法,没有严格的语法级别的“访问控制符”,更多的是依靠程序员自觉实现。

继承

继承可以让子类具有父类的特性,提高了代码的重用性。
从设计上是一种增量进化,原有父类设计不变的情况下,可以增加新的功能,或者改进已有的算法。

子类扩展父类

实现类的扩展,实现代码的重用,不用再重新发明轮子(don’t reinventwheels)。

如果一个新类继承自一个设计好的类,就直接具备了已有类的特征,就大大降低了工作难度。已有的类,我们称为“父类或者基类”,新的类,我们称为“子类或者派生类”

在这里插入图片描述
语法格式:

Python支持多重继承,一个子类可以继承多个父类。继承的语法格式如下:

class 子类类名(父类1[,父类2...]):
	类体

如果在类定义中没有指定父类,则默认父类是object类。也就是
说, object 是所有类的父类,里面定义了一些所有类共有的默认实现,比如: __new__()

关于构造函数

1 子类不重写 __init__ ,实例化子类时,会自动调用父类定义的 __init__
2 子类重写了__init__ 时,实例化子类,就不会调用父类已经定义的 __init__
如果重写了__init__ 时,要使用父类的构造方法,可以使用 super 关键字,也可以使用如下格式调用:父类名.__init__(self, 参数列表)

继承示例

class Person:
	def __init__(self,name,age):
		print("Person的构造方法")
		self.name = name
		self.age = age
	def say_age(self):
		print(self.name,"的年龄是:",self.age)
        
class Student(Person):
    def __init__(self,name,age,score):
    	# 子类并不会自动调用父类的__init__(),我们必须显式的调用它。
        Person.__init__(self, name, age)##调用父类对象
        #super(Student,self).__init__(name,age) #与上同
       	print("Student的构造方法")
       	#self.name = name
       	#self.age = age
       	self.score = score
        
s1 = Student(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44006060

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值