1. 面向对象概念(面试题)
面向过程:做一件事情,从头到尾,每一个细节都要关注,重点在于过程
上海到北京:上海-郑州-武汉-邯郸-邢台-北京
面向对象:做一件事情,用对象去做,不关心细节和过程,万物皆对象
从上海到北京: 坐动车到北京
类:一类事物,一个抽象的概念,比如:人、动物、水果
对象:是类的具象化比如:张三、李四、猫、狗
特征(属性)
功能行为(方法)
2. 类的定义(重点)
class 类名:
def __init__(self):
self.color = "yellow"
self.leg = 4
def bak(self):
print("狗在叫")
def eat(self):
print("狗爱啃骨头")
变量名 = 类名()
变量名.eat()
3. 内置函数(重点)
定义方式:
def __XXX__(self):
特点:
程序员不会调用它,Python解释器触发某个条件时调用
常见的内置函数:
初始化:__init__()
打印对象信息:__str__()
对象被系统回收前:__del__()
对象生命周期:
对象被创建后:init()
对象被系统回收前:del()
面向对象三大特性
1:封装
2:继承
3:多态
封装:
将一类方法或者函数,属性,根据职责要求封装
继承:
概念:子类可以拥有父类的属性和方法
作用:减少代码的书写,提高代码的阅读性
单继承
代码的传递性:孙子类中可以使用爷爷类型的方法
多继承
定义:一个子类可以继承多个父类
语法格式:
特点:
子类拥有所有父类的属性和方法
方法重写:
概念:在子类中书写和父类同名的方法
特点:在类中调用方法,如果在子类中找到,直接执行子类中的方法
如果子类中没有找到这个方法,去父类中找,找到了就调用父类中的方法,如果父类中没有找到,则报错
7. 多态
概念:
一个对象的多种形态
作用:
增强代码的灵活性、提高代码的扩展性
条件:
继承、方法的重写
多态在python中体现不是很明显