面向对象三大特性
一、简介
1、封装
封装就是隐藏对象的属性和实现细节,仅对外公开接口(公有的方法),控制在程序中的属性的读和修改的访问级别,将数据和行为进行有机的结合,形成一个整体。这个整体就是“类”,其中数据和方法都是类中的成员。
2、继承
继承:子类直接使用父类定义好的属性和方法,从而实现代码的复用。code reuse
3、多态
向不同的对象发送同一条信息,不同的对象在接受到信息后,会做出不同的反应.
二、封装
将属性和方法进行有机结合,形成一个整体
将不想暴露给外界的成员私有化,外界只能通过公有的接口访问
class Person :
def __init__ ( self, name, age) :
self. __name = name
self. __age = age
def get_age ( self) :
return self. __age
def set_age ( self, age) :
if age < 0 or age > 150 :
print ( "年龄不合法" )
else :
self. __age = age
def __str__ ( self) :
return f"姓名:{self.__name},年龄:{self.__age}"
p = Person( 'Tom' , 18 )
print ( p)
p. set_age( 200 )
print ( p)
age = property ( get_age, set_age, delete_age)
p. age = 20
print ( p. age)
del p. age
print ( p. __dict__)
del p. age
print ( p. __dict__)
print ( Person. __dict__)
三、继承
1. 子类直接使用父类定义好的属性和方法,从而实现代码复用.
2. 在Python中如果程序需要,可以让一个类去继承另一个类,被继承的类称为父类或者超类,也可以称为基类,继承的类称为子类或派生类.
3. 如果创建类时,没有手动去设置父类,默认继承自object类,顶层类
(在Python中,万物皆对象)
4. 继承是is-a的关系 一个学生是一个人 一个毕业生是一个学生
5. 当子类继承父类后,会拥有父类所有的属性和方法
1、简单的继承
class Person :
def __init__ ( self, name, age) :
self. name = name
self. age = age
def __str__ ( self) :
return f"姓名:{self.name},年龄:{self.age}"
class Student ( Person) :
pass