Python3【类】继承

继承是面向对象的一个基本准则,继承允许我们在两个或者更多的类之间创建一种关系。

基本继承

从技术上将,每一个Python类的创建都是用了继承,所有的类都是一个叫做object的特殊类的子类。不具体指明的时候,自动继承过来。当然,亦可以通过下面的方式现实的从object类继承。
class MyClass(object):
语法:
在定义一个新的类的时候,在类名的括号里面包含父类的名字就可以了。这样,这个新定义的类,就可以实现父类的功能。

扩展内置类

例如,我们想要把联系人添加到列表里。同时西门想通过名字实现搜索。那么我们需要给列表添加一个搜索功能。例如,下面把list这个内置类扩展了,添加了搜索功能。

class ContactList(list):
    def search(self,name):
        '''Return all contacts that contain the search value
        in their name.'''
        matching_contacts = []
        for contact in self:
            if name in contact.name:
                matching_contacts.append(contact)
            return matching_contacts
 
class Contact:
    all_contacts=ContactList()
    
    def __init__(self, name, email):
        self.name = name
        self.email = email
        self.all_contacts.append(self)           

重写方法

当我们通过继承父类可以实现很多功能,但是当我们想要改变其中的一些功能的时候,就可以通过重写来实现。
重写和其他语言里面是差不多的。在子类里面有一个与父类名字相同的方法来覆盖父类的这个方法。例如,通过重写初始化函数,增加一个电话号码属性。

class Friend(Contact):
    def __init__(self,name email,phone):
        self.name = name
        self.email = email
        self.phone = phone

多重继承

从多个父类继承。可以访问所有父类的功能。但是通常 不推荐使用。

多态

多态,即有多种形态。这意味着即便不知道变量指向的是哪种对象,也能够对其执行操作,且操作将随着对象的类型变化而变化。
通常,没一个类型都会自己定义对应的方法。例如,在C++中,vector,string,queue等等的STL类,都自己定义了size()这个功能,我们在使用的时候,无需知道对象到底是什么,他们都可以直接使用这个方法。
在python中也是一样的道理。不同的类都自己定义对应的方法。

猜你喜欢

转载自blog.csdn.net/yuanliang861/article/details/84474939
今日推荐