面向对象_基本概念(2)
来源:互联网 发布:nginx 跳转到指定ip 编辑:程序博客网 时间:2024/06/05 23:35
类的继承
1). 两个类之间是从属关系
2). 代码复用
实现继承
能直接使用父[基]类的属性和方法
接口继承
只能使用父类的属性和方法的名称,自己处理代码实现
单继承
class Father(object): pass class Child(Father): pass
重写
【防止执行父类中的方法】
class Father(object): DIR = '/var/php/' def __up(self) print('is father up') pass class Child(Father): DIR = '/var/python/' def __up(self) print('is child up') pass
子类定义与父类同名方法或属性,会自动覆盖父类对应的方法或属性
self
【永远是执行该方法的调用者】
class M(object): def __init__(self): pass def __run(self): pass abc = M()
abc = M()
M这个类,通过实例化得到了abc这个对象,此时类中所有的self,都代表 abc 实例本身
__init__方法继承
class Fa(object): PUBFILED = 911 # 静态属性 在类里边 def __init__(self): print('Fa is init') class Ga(Fa): def __init__(self): super(Ga, self).__init__() b = Ga()
b 实例化 Ga ,Ga中的self就是对象b
init方法又继承了父类
b对象又把自己传给了 Fa 的init方法
这样就实现了子类调用父类的构造函数
多重继承
clas s DerivedClassName(Base1, Base2, Base3):
2.7 经典类,深度优先;新式类,广度优先
3.x 均是广度优先
封装
隐藏功能的实现细节,防止数据被随意修改
类 封装了: 静态属性和方法
对象 封装了:普通属性的值
多态
接口重用
继承和封装代码后,注意事项
class Fa(object): age = 123 def __init__(self): self.age = 333 def change_num(self): print('Fa_change_num') def fa_run(self): print('Fa__run') self.change_num() class Fb(Fa): def __init__(self): super(Fb, self).__init__() print(self.age) def change_num(self): print('Fb_change_num') def fb_run(self): print('Fb_run') self.fa_run() a = Fb() a.fb_run()
结果
333
Fb_run
Fa__run
Fb_change_num
注意:这里 fa_run() 调用 change_num() 方法,得到的是 Fb_change_num() 方法
阅读全文
0 0
- 面向对象_基本概念(2)
- 面向对象_基本概念(1)
- 常量_面向对象基本概念day07
- Java入门_面向对象基本概念
- C++_面向对象程序设计基本概念
- 38_面向对象_11_继承_基本概念
- 面向对象基本概念(一)
- 黑马程序员_面向对象(2)
- 黑马程序员_面向对象(2)
- 黑马程序员_面向对象(2)
- 第十七课 面向对象的基本概念(2)
- 45_面向对象_18_多态_基本概念_强制转型问题_instanceof运算符
- 黑马程序员_面向对象_基础巩固(2)
- Scala_(2)_面向对象
- 面向对象的基本概念(一)
- Python -面向对象(一 基本概念)
- Java笔记----4. 面向对象(基本概念)
- 面向对象的基本概念(一)
- 去掉字符串中空格的四种方法
- 徽章系列3: Travis CI 的使用
- SQL左右连接中的on and和on where的区别
- 数学分析
- arm开发板烧写
- 面向对象_基本概念(2)
- 徽章系列8:生成个性徽章
- linux系统网络配置
- Qt 常用类(3)—— QString
- 徽章系列4: Circle CI 的使用
- 外观设计模式
- 24.Android-实现黑名单电话拦截
- POJ 3111 K Best(二分——最大化平均值)
- jsonp的概念与使用