更新于

Python面向对象的三大特征(封装、继承、多态)、继承详解

发布于 / 分类: 个人笔记 / 暂无评论 / 阅读量: 1190

面向对象的三大特征(封装、继承、多态)

封装

隐藏对象的属性和实现细节,只对外提供必要的方法,相当于将“细节封装起来”,只对外暴露“相关的调用方法”。封装可以通过“私有属性、私有方法”的方式,实现封装。

继承

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

多态

指同一个方法调用由于对象的不同会产生不同的行为。

继承

继承是面向对象程序设计的重要特征,也是实现“代码复用”的重要手段。如果一个新类继承自一个设计好的类,就直接具备了已有类的特征,会大大降低工作难度。已有的类,我们称为“父类或者基类”,新的类,我们称为“子类或者派生类”。

语法格式

Python支持多重继承,一个子类可以继承多个父类。继承的语法格式如下:
class 子类类名(父类1[,父类2,...])

类体

如果在类定义中没有指定父类,默认父类是object类,也就是说,object是所有类的父类,里面定义了一些所有类共有的默认实现,如:__new__()。
定义子类时,必须在其构造函数中调用父类的构造函数。调用格式如下:
父类名.__init__(self,参数列表)

class Person:
    def say_age(self):
        print('不知道')
class Student(Person):#子类中为空
    pass
s = Student()
s.say_age()

运行结果为:不知道
从上面一个简单地例子来看,子类Student已经继承了父类Person,并且可以自由调用方法。

class Person:
    def __init__(self,name,age):
        self.name = name
        self.__age = age  #私有属性
    def say_age(self):
        print('不知道')
class Student(Person):
    def __init__(self,name,age,score):
        Person.__init__(self,name,age)  #引用中形参是子类中的形参,不是父类中的。而且必须显式的调用,不然解释器不会调用
        self.score = score
s = Student('cys',18,100)
s.say_age()
print(s.name)
print(s._Person__age)

运行结果为:不知道
cys
18
从上面代码中可以看出,继承成功后子类一样可以调用父类中的属性,私有属性继承后相当于子类的私有属性,需要使用调用私有属性的方法调用。

暂无评论

Info
站点信息

黑色天空博客(www.aissk.cn)成立于2017年6月1日,搭建在阿里云ECS云计算平台。本站目前作为我的个人笔记记载以及原创程序首发站,同时致力于互联网资源的共享,包括程序源码、各种教程、软件、影视、音乐、电子书、新闻等。

创建于20176

总共发表了154篇文章

共有35条评论

创建了22个分类目录

Archive
时间归档
Weather
天气
设置
配色方案

布局