python基础语法 010 类和对象-6-1 继承定义

前提:

        在真实世界中,类型之间可能存在范围包含关系,比如:人这个类型和亚洲人这个类型。

        人是包括了亚洲人的,如果某人是员工亚洲人,那么它必定是一个人

        这种关系,在编程语言中称为继承关系

        比如上面例子:亚洲人这个类就继承了人这个类

        通常把被继承的类称为父类或者基类

        把继承类称为子类 或者 派生类

例子:Benz2016、Benz2018继承BenzCar类

class BenzCar:
    brand = '奔驰'
    country = '德国'

    @staticmethod
    def pressHorn():
        print("嘟嘟~~")
    def __init__(self, color, engineSN):
        self.color = color
        self.engineSN = engineSN
    
    def changeColor(self, newColor):
        self.color = newColor

class Benz2016(BenzCar):
    price = 502222
    model = 'Benz2016'
    
class Benz2018(BenzCar):
    price = 902222
    model = 'Benz2018'

2 继承

2.1 私有属性

私有属性

  • 双下滑线开头:__attr
  • 声明为私有属性,那么该说明属性是类私有的,仅限于在类里面使用,不要在类外面去调用

2.2 类的继承关系:

通过使用父类的方法,使其不重复去定义各种方法

问:通过继承能够获得什么?

  • 子类通过继承可以自动获得父类的一切属性和方法
  • 被继承的类叫父类,继承的类叫子类
  • 注意:私有属性不能继承
  • 作用:子类通过继承可以获得父类的属性和方法,提高开发的效率及代码的复用性
  • 继承是单边关系
  • 一般继承不超过2层

2.2.1 继承的定义

语法

继承
父类、子类
继承:如何表示?
class 子类名(父类名):
    pass
 1)一个子类在继承父类的一切特性的基础上,可以有自己的属性和方法

 例子1:smartPhone继承了Phone

lass Phone:
    def __init__(self, number):
        self.number =number

    def  call(self, to, records = False):
        "打电话"
        print("{}给{}打电话".format(self.number, to))
        if records:
            self.record()

    def record(self):
        '录音'
        print("{}正在录音".format(self.number))

class smartPhone(Phone):
    '智能手机'
    model = '智能手机'

normal_phone = Phone('1')
print(normal_phone.record())

smart_phon = smartPhone('123')
print(smart_phon.record())
print(smart_phon.number)

"""
1正在录音
None
123正在录音
None
123
"""
2) 父类当中不能调用子类方法

#父类当中不能调用子类方法
class smartPhone(Phone):
    '智能手机'
    def watch_movie(self, name):
        print("{}正在看电影".format(name))

normal_phone = Phone('1')
print(normal_phone.record())
print(normal_phone.watch_movie())


"""
AttributeError: 'Phone' object has no attribute 'watch_movie'
"""
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值