简明设计模式教程-面向对象编程

面向对象编程的三个特性:封装性、继承性、多态性。

封装是指把数据和函数封装成为一个对象,也就是创建一个名字空间,通过这个名字空间引用这些数据和函数,这就是定义对象、声明对象、使用对象。类的定义就是定义对象拥有的属性和方法,类的实例化就是声明这个类的一个对象,访问对象的属性和方法就是使用这个对象。


# 定义对象, 定义类
class Person():
	def __init__(self, name, age):
	# 定义对象的属性
		self.name = name
		self.age = age

	# 定义对象方法
	def speak(self, word):
		print(f'{self.name}说:', word)

# 声明对象,类的实例化
p = Person('张三', 18)

# 使用对象,调用对象方法
p.speak('hello, world!')

继承是指定义对象时复用已有对象的代码,此时已有对象称为基础类,新对象称为扩展类。通过继承机制,新对象不但复用了其它对象的属性和方法,并且在这个基础上重新定义该对象专有的属性和方法。

class Teacher(Person):
	def __init__(self, name, age):
		super().__init__(name, age)
		# 定义新属性
		self.teaching = ''

	# 定义新方法
	def teach(self, teaching):
		self.teaching = teaching
		self.speak(self.teaching)

	# 覆盖已有方法
	def speak(self, word):
		print(f'老师{self.name}教授:{self.teaching}')

class Student(Person):
	def __init__(self, name, age):
		super().__init__(name, age)
		self.knowledge = ''

	def learn(self, teacher):
		self.knowledge = teacher.teaching
		self.speak(self.knowledge)

	def speak(self, word):
		print(f'学生{self.name}学习:{self.knowledge}')


t = Teacher('张三', 32)
s = Student('李四', 10)
t.teach('知识就是力量!')
s.learn(t)

多态是指对象继承时,重定义基础对象的方法,此时,不同扩展对象调用相同方法时呈现不同的结果,因此叫作多态性。如上述代码中老师和学生对象都调用speak方法但输出却不同。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章