Python 官方文档:入门教程 => 点击学习
目录python 面向对象编程的三大特性之继承一、继承1、继承的实际栗子2、继承的好处3、继承的使用场景4、继承有几种?5、Python 中继承的简单语法二、不使用继承、
关系
现有
的 class 继承子类(Subclass
)父类
、基类
、超类
动物是父类
,猫、狗是动物的子类
菠萝、大菠萝是人类的子类
动物、人类是生物的子类
超类、祖父类
拥有
父类的所有属性、方法,提高了代码的可扩展性和重用性重新定义
某些属性,并重写
某些方法,即覆盖
父类的属性、方法,变成子类独有的属性、方法公共的
属性和方法公共的
属性和方法提取作为父类(基类)的属性、方法,而特殊的属性、方法则在本类中定义具体可以看下面的【不使用继承、使用继承的区别】
单继承
多继承
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...
以上就是Python 面向对象编程的三大特性之继承的详细内容,更多关于Python 面向对象编程的继承的资料请关注编程网其它相关文章!希望大家以后多多支持编程网!
--结束END--
本文标题: Python 面向对象编程的三大特性之继承
本文链接: https://www.lsjlt.com/news/134341.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0