面向对象的思维方式:解决问题前,应该考虑用谁解决问题,这个谁就是对象
一、python中面向对象有
1.类:描述的是一类事物,比如动物,人类
2.对象:对象就是类的具体化,比如动物包括:狗、猪等,狗和猪就是对象
3.属性:属性是对象可以做到的能力,比如狗可以汪汪叫,汪汪叫就是狗的一个属性
二、面向对象的三大特征
1.封装
将属性和方法封装到一个抽象的类中
2.继承
1)概念:子类拥有父类的所有属性和方法,继承可以实现代码的重复利用,相同的代码不用重复的编写
2)语法:
3)class 子类名(父类名):
pass
4)继承分为单继承和多继承:
多继承:一个子类可以继承多个父类
语法:class 子类名(父类名1,父类名2,...)
pass
如果父类之间存在同名的属性或者方法,应避免使用多继承
4)继承具有传递性
例如:定义一个狗的类别,狗拥有跑的属性,再定义一个小花狗的子类,小花狗也可以跑,那么小花狗便可以继承狗的跑的属性,假如我们现在定义一个小胖狗的子类,小胖狗依然可以跑,那么小胖狗可以继承小花狗的属性,其中我们只在父类中定义了跑的属性,在两个子类中只需要继承就可以调用
class Dog:
def run(self):
pass
class XiaoDog(Dog):
pass
class Xiaopanggou(xiaogou):
pass
5)当父类中的属性和方法无法满足子类需求时,可以对方法进行重写。比如在父类中定义的属性是小狗慢慢的跑,如果我们不想让小狗慢慢的跑,便可在子类中将属性进行修改,当程序执行时,只会调用子类中重写的方法,不会调用父类中封装的方法
class Dog:
def run(self):
print("慢慢的跑“)
修改:
class Xiaogou(Dog):
def run(self):
print("快点跑")
6)私有方法和属性
在方法和属性之前加两个下划线即可
__属性名
特点:类别外部不可查看
3.多态:不同的子类对象调用相同的父类方法,产生不同的执行结果
一个父亲,多个儿子,龙生九子,各有不同