Python基础复习笔记(9)----面向对象(2)

面向对象三大特征:
·封装(隐藏)
隐藏对象的属性和实现细节,只对外提供必要的方法。相当于将“细节封装起来”,只对外暴露“相关调用方法”。通过前面学习的“私有属性、私有方法”的方式,实现“封装”。
·继承
继承可以让子类具有父类的特性,提高了代码的重用性。
原有父类设计不变的情况下,可以增加新的功能,或者改进已有的算法。
·多态
多态是指同一个方法调用由于对象不同会产生不同的行为。

继承:
继承是面向对象程序设计的重要特征,也是实现“代码复用”的重要手段。父类或者基类”or子类或者派生类”
Python 支持多重继承,一个子类可以继承多个父类。继承的语法格式如下:
class 子类类名(父类 1[,父类 2,…]):
类体
如果在类定义中没有指定父类,则默认父类是 object 类。也就是说,object 是所有类的父类,里面定义了一些所有类共有的默认实现

类成员的继承和重写:

  1. 成员继承:子类继承了父类除构造方法之外的所有成员。
  2. 方法重写:子类可以重新定义父类中的方法
class Person:
	def __init__(self,name,age):
		self.name = name
		self.age = age
	def say_age(self):
		print(self.name,"的年龄是:",self.age)
		def say_name(self):
		print("我是",self.name)
class Student(Person):
	def __init__(self,name,age,score):
		self.score = score
		Person.__init__(self,name,age) #构造函数中包含调用父类构造函数
	def say_score(self):
		print(self.name,"的分数是:",self.score)
		def say_name(self): #重写父类的方法
		print("报告老师,我是",self.name)
s1 = Student("张三",15,85)
s1.say_score()
s1.say_name()
s1.say_age()

通过类的方法 mro()或者类的属性__mro__可以输出这个类的继承层次结构。
object 类是所有类的父类,因此所有的类都有 object 类的属性和方法。

多重继承
Python 支持多重继承,一个子类可以有多个“直接父类”。这样,就具备了“多个父类”的特点(例子):
在这里插入图片描述

class A:
	def aa(self):
		print("aa")
class B:
	def bb(self):
		print("bb")
class C(B,A):
	def cc(self):
		print("cc")
c = C()
c.cc()
c.bb()
c.aa()

多态:
多态(polymorphism)是指同一个方法调用由于对象不同可能会产生不同的行为。
多态要注意以下 2 点:
1.多态是方法的多态,属性没有多态。
2.多态的存在有 2 个必要条件:继承、方法重写。

常见的特殊方法统计如下:
在这里插入图片描述
每个运算符实际上都对应了相应的方法:
在这里插入图片描述在这里插入图片描述
对象的浅拷贝和深拷贝
浅拷贝
对象包含的子对象内容不拷贝。因此,源对象和拷贝对象会引用同一个子对象。
深拷贝
使用 copy 模块的 deepcopy 函数,递归拷贝对象中包含的子对象。源对象和拷贝对象所有的子对象也不同。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值