您的位置:首页 > 财经 > 产业 > python基础语法 010 类和对象-6-1 继承定义

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

2025/3/18 13:13:39 来源:https://blog.csdn.net/qq_41070511/article/details/140340293  浏览:    关键词:python基础语法 010 类和对象-6-1 继承定义

前提:

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

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

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

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

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

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

例子:Benz2016、Benz2018继承BenzCar类

class BenzCar:brand = '奔驰'country = '德国'@staticmethoddef pressHorn():print("嘟嘟~~")def __init__(self, color, engineSN):self.color = colorself.engineSN = engineSNdef changeColor(self, newColor):self.color = newColorclass Benz2016(BenzCar):price = 502222model = 'Benz2016'class Benz2018(BenzCar):price = 902222model = '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 =numberdef  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'
"""

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com