python面向对象三大特性之一继承

Posted Forever77

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python面向对象三大特性之一继承相关的知识,希望对你有一定的参考价值。

继承

即在定义一个类时,以另一个类为参数,则称这个新定义的类继承了参数类,父类又称为基类。

单继承表示只继承一个类,多继承表示继承多个类。

class parent1:
    pass
class parent2:
    pass
class sub1(parent1):#单继承
    pass
class sub2(parent1,parent2):#多继承
    pass

1.子类继承了父类的所有属性,可以调用父类的属性。

2.如果在子类中定义了与父类中相同的属性,相当于在自己的属性字典中增加了这些属性,而不是覆盖了父类的这些属性。

 

 

继承具有两种含义:

1.继承基类的方法,并且做出自己的改变或扩展(代码重用),不建议使用,会让子类与父类出现耦合。

2.声明某个子类继承于于某基类,定义一个接口,子类继承接口类,并且实现接口中定义的方法,接口就是一个函数。

即在父类中定义方法但是不指明接口的实现过程,子类继承这个接口并且指明的实现过程。

定义接口需要导入abc模块,并且在定义基类时添加metaclass=abc.ABCMeta,再在接口前用@abc.abstractmethod修饰即可。

import abc
class animal(metaclass=abc.ABCMeta): #定义基类时加metaclass=abc.ABCMeta参数
    def __init__(self,name,leg):
        self.name=name
        self.leg=leg
    @abc.abstractmethod  #在接口前面加@abc.abstractmethod
    def eat_food(self):
        pass

class cat(animal): #def eat_food(self): #print(‘eat food‘) cat1=cat(cat1,4) #报错信息Can‘t instantiate abstract class cat with abstract methods eat_food

如上述例子,cat类继承了animal类,在不具体化eat_food接口的情况下实例化会报错,去掉两行注释、即指定eat_food方法后才正常。

 


以上是关于python面向对象三大特性之一继承的主要内容,如果未能解决你的问题,请参考以下文章

大数据必学Java基础(四十):面向对象三大特性之一继承(Inheritance)

python学习面对对象三大特性

PHP学习笔记之继承(面向对象三大特性之一)

Java面向对象(OOP)--面向对象三大特性之一: 继承(继承Object类Super关键字方法重写)

Python面向对象之:三大特性:继承,封装,多态。

19.Python面向对象之:三大特性:继承,封装,多态。