
具体可以看下面的【不使用继承、使用继承的区别】
class Parent:
pass
class Child(Parent):
pass所有类的都有一个共同父类,就是 object,默认会继承它,写或不写都一样
class Parent:
pass
class Parent(object):
pass有一个动物类、狗类、猫类

# 不使用继承
class Animal:
def eat(self):
print("吃东西...")
def drink(self):
print("喝水...")
def run(self):
print("跑步...")
class Cat:
def eat(self):
print("吃东西...")
def drink(self):
print("喝水...")
def run(self):
print("跑步...")
def miao(self):
print("喵喵叫...")
class Dog:
def eat(self):
print("吃东西...")
def drink(self):
print("喝水...")
def run(self):
print("跑步...")
def wang(self):
print("汪汪叫...")
从类图就能看到,使用继承就变得简单多了
# 使用继承
class Animal:
def eat(self):
print("吃东西...")
def drink(self):
print("喝水...")
def run(self):
print("跑步...")
class Cat(Animal):
def miao(self):
print("喵喵叫...")
class Dog(Animal):
def wang(self):
print("汪汪叫...")子类拥有父类以及父类的父类,以及所有父类的父类的父类...中封装的所有属性、方法

class Animal:
def eat(self):
print("吃东西...")
def drink(self):
print("喝水...")
def run(self):
print("跑步...")
class Cat(Animal):
def miao(self):
print("喵喵叫...")
class Dog(Animal):
def wang(self):
print("汪汪叫...")
class Chai(Dog):
def shake(self):
print("小柴柴摇尾巴...")
chai = Chai()
# 调用 父类的父类 的方法
chai.eat()
# 调用 父类 的方法
chai.wang()
# 调用 自己独有 的方法
chai.shake()
# 输出结果
吃东西...
汪汪叫...
小柴柴摇尾巴...抽象即抽取类似或者说比较像的部分


class Animal:
def __init__(self, name, age, sex):
self.__name = name
self.__age = age
self.__sex = sex
# 提取的公共方法
def eat(self):
print(f"{self.__name} 正在吃饭....")
@property
def name(self):
return self.__name
class Person(Animal):
def walk(self):
print(f"{self.name} 两条腿正在走路")
class Pig(Animal):
def kill(self):
print(f"{self.name} 猪正在去屠宰场ing...")
class Dog(Animal):
def wang(self):
print(f"{self.name} 汪汪叫ing...")
person = Person("小菠萝", 25, "Male")
pig = Pig("麦兜", 4, "公")
dog = Dog("柴犬", 3, "母")
# 调用父类的公共方法
person.eat()
pig.eat()
dog.eat()
# 调用子类独有的方法
person.walk()
pig.kill()
dog.wang()
# 输出结果
小菠萝 正在吃饭....
麦兜 正在吃饭....
柴犬 正在吃饭....
小菠萝 两条腿正在走路
麦兜 猪正在去屠宰场ing...
柴犬 汪汪叫ing...