面向对象
1.概念
- 面向过程 ——C语言,Fortran
- 面向对象 ——C++、Java、python
面向对象是相对面向过程而言
面向对象和面向过程都是一种思想
面向过程强调的是功能、行为
面向对象:将功能封装进对象,强调具备了功能的对象
面向对象是基于面向过程的
封装、继承、多态。而面向对象的过程就是找对象、建立对象、使用对象、维护对象的关系的过程。
2.类(class)
具有相同属性和方法的一组对象的描述或定义。
类:是对现实生活中事物的描述。
对象:就是这类事物,实实在在存在的个体。
class Lei():
"""类的说明文档"""
def __init__(self,传递参数):
self.参数=传递参数
……
#类中的函数称为方法
3.类的继承
构造方法
class 子类名(父类名):
def init(self, 父类全部参数,子类参数):
super(子类名, self).init(父类参数)
self.参数=子类参数
def 函数(self):
内容
子类需要使用父类参数时必须在init里写入传入参数
使用super行的语句可以继承父类的全部方法
class Father(object):
def __init__(self, name):
self.name=name
print ( "name: %s" %( self.name))
def getName(self):
return 'Father ' + self.name
class Son(Father):
def __init__(self, name):
super(Son, self).__init__(name)
print ("hi")
self.name = name
def getName(self):
return 'Son '+self.name
0if __name__=='__main__':
son=Son('runoob')
print ( son.getName() )
情况一:**子类需要自动调用父类的方法:**子类不重写__init__()方法,实例化子类后,会自动调用父类的__init__()的方法。
情况二:**子类不需要自动调用父类的方法:**子类重写__init__()方法,实例化子类后,将不会自动调用父类的__init__()的方法。
情况三:**子类重写__init__()方法又需要调用父类的方法:**使用super关键词: