python-----------------------类的继承

本文介绍了Python中的类继承概念,包括继承的访问控制、方法的重写(覆盖override)以及继承时如何使用初始化。通过实例展示了类的继承结构,强调了公有和私有成员的访问规则,并讨论了子类如何覆盖父类的方法以及初始化过程中的注意事项。
摘要由CSDN通过智能技术生成

类的继承

基本概念
面向对象三要素之一,继承inheritance
人类和猫类都继承自动物类.
个体继承自父母,继承了父母的一部分特征,但也可以有自己的个性.
在面向对象的世界中,从父类继承,就可以直接拥有父类的属性和方法,这样可以减少代码,多复用.子类可以定义自己的属性和方法.
看一个不用继承的例子

class Animal:
    def shout(self):
        print('Animal shouts')

a = Animal()
a.shout()

class Cat:
    def shout(self):
        print('Cat shouts')

c = Cat()
c.shout()

上面的两个类虽然有关系,但是定义是并没有建立这种关系,而是各子完成定义
动物类和猫类都有吃,但是他们的吃有区别,所以分别定义.

class Animal:
    def __init__(self,name):
        self._name = name

    def shout(self):
        print('{} shouts'.format(self.__class__.__name__))

    @property
    def getname(self):
        return self._name

a = Animal('moster')
a.shout()

class Cat(Animal):
    pass

cat = Cat('garfield')
cat.shout()
print(cat.getname)

class Dog(Animal):
    pass

dog = Dog('ahuang')
dog.shout()
print(dog.getname)

上例可以看出,通过继承,猫类,狗类不用写代码,直接机车个了父类的属性和方法

  • 继承
    class Cat(Animal)这种形式就是从父类继承,括号中写上继承的类的列表.
    继承可以让子类从父类获取特征(属性和方法)

  • 父类
    Animal就是Cat的父类,也称为基类,超类

  • 子类
    Cat就是Animal的子类,也称为派生类
    定义
    格式如下

class 子类名(基类1[,基类2,...]):
    语句块

如果类定义时,没有基类列表,等同于继承自object.在Python3中,objact类是所有对象的跟基类.

class A:
    pass
# 等价于
class A(objact):
    pass

注意,上例在Python中,两种写法是不同的.
Python支持多继承,继承也可以多.
查看继承的特殊属性和方法有

特殊属性和方法 含义 示例
__base__ 类的基类
__bases__ 类的基类元组
__mro__ 显示方法查找顺序,基类的元组
mro()方法 同上,返回列表 int.mro()
__subclasses__() 类的子类列表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值