1、对象=属性+方法(函数)。静态的特征称为属性,动态的动作称之为方法。
2、类:类的首写字母约定大写,用类来创建真正的对象。
3、封装,对外部隐藏对象工作的细节;继承,子类自动共享父类的数据和方法;多态,可以对不同类的对象调用相同的方法。
4、方法和函数的区别:众说纷纭:比较可靠的说法,最大的区别是参数的传递参数,方法是自动传参self,函数是主动传参
class Foo(object): def func(self): pass #实例化 obj = Foo() # 执行方式一:调用的func是方法 obj.func() #func 方法 # 执行方式二:调用的func是函数 Foo.func(123) # 函数
5、多态:不同对象对同一方法的不同响应行动。
6、继承:
语法:class 子类名称(父类名称):
.......
class Parent(): def hello(self): print('正在调用父类') class Child(Parent): pass p = Parent() p.hello() c = Child() c.hello()
#运行结果:
正在调用父类
正在调用父类
注意:1、如果子类中定义与父类同名的方法或者属性,则会自动覆盖父类对应的方法和属性。
当覆盖了父类的方法或属性时,如果子类又需要父类的相应方法和属性,有两种解决方法:1)调用未绑定的父类方法:2)使用super()函数。推荐使用方法二,因为一个super()可以解决所有父类、父父类中被覆盖的方法。
方法1): 方法2)
2、貌似不存在java中父类不实例化子类就无法实例化的原则。
3、多重继承,pytho支持多重继承。但是为了避免代码混乱,一般尽量不使用多种继承。
多重继承语法: