面向对象
编程语言的发展:机器语言 汇编语言 高级语言(面向过程的 C) 面向对象(c++ java python)
类:对具有相同属性和方法的抽象
对象:具有属性和方法的实物
__init__
构造函数
self
即将要出现的那个对象,临时指向新创建的对象
方法(3): 1、类方法(2) 装饰器 静态方法 2、对象方法
面向对象的三大特性:继承 封装 多态
继承:(优点)减少代码量 (缺点)耦合程度太高
高内聚 低耦合
构造函数:没有显示声明,系统会默认提供一个
子类使用父类属性时,必须手动调用父类构造函数
def __init__(self):
super().__init__("s",2,2)
print("这是子类构造函数")
重写和覆盖:当父类方法不能满足子类需求
多继承: 从左到右,一层一层寻找
class person():#类
def __init__(self,name,age,sex,heigth):#属性
self.name = name
self.age = age
self.sex = sex
self.heigth = heigth
def say(self):#对象方法
print("hello")
print(self.name,self.age,self.sex,self.heigth)
@staticmethod#静态方法
def run():
print("跑步")
p = person("lhy",18,"男",180)
p.say()
person.run()
父类 子类
class animal():#父类
def __init__(self, name, weight, age):
self.name = name
self.weight = weight
self.age = age
def eat(self):
print("吃饭")
def run(self):
print("跑步")
def sleep(self):
print("睡觉")
class cat(animal):#子类
def __init__(self):
super().__init__("s", 2, 2)
print("这是子类构造函数")
def eat(self):
print("猫粮")
class dog(animal):#子类
pass
c = cat()
e = dog()
c.eat()
e.eat()