IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python继承 -> 正文阅读

[Python知识库]python继承

面向对象三大特性

1.封装根据职责将属性和方法封装到-个抽象的类中

2.继承实现代码的重用,相同的代码不需要重复的编写

3.多态不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活度

继承的概念:子类拥有父类的所有方法和属性

class 子类名(父类名):
???????????? pass

继承具有传递性

class Animal:
    def eat(self):
        print("吃")

    def drink(self):
        print("喝")

    def run(self):
        print("跑")

    def sleep(self):
        print("睡")


class Dog(Animal):
    def bark(self):
        print("汪汪")

class Xiaotianquan(Dog):
    def fly(self):
        print("飞")

class Cat(Animal):
    def catch(self):
        print("抓老鼠")
wangcai = Dog()
wangcai.drink()
wangcai.run()
wangcai.eat()
wangcai.bark()
wangcai.sleep()

xtq = Xiaotianquan()
xtq.run()
xtq.bark()

cat = Cat()
cat.run()
cat.catch()

父类的重写,有两种,

(1)覆盖父类的方法

(2)对父类进行扩展

覆盖:

●子类拥有父类的所有方法和属性,父类的方法实现和子类的方法实现完全不同

●子类继承自父类,可以直接享受父类中已经封装好的方法,不需要再次开发

●当父类的方法实现不能满足子类需求时,可以对方法进行重写(override)

扩展:

在开发中,子类的方法实现中包含父类的方法实现

在需要的位置使用super().父类方法

但是在python2.0中也可以使用 父类名.方法(self)(但是不建议使用)

class Animal:
    def eat(self):
        print("吃")

    def drink(self):
        print("喝")

    def run(self):
        print("跑")

    def sleep(self):
        print("睡")


class Dog(Animal):
    def bark(self):
        print("汪汪")


class Xiaotianquan(Dog):
    def fly(self):
        print("飞")

    def bark(self):
        # 针对子类特有的需求,编写代码
        print("神一样")

        # 使用super调用原本在父类中封装的方法
        super().bark()
        # 增加其他子类的代码

        print("$$$$")


# class Cat(Animal):
#     def catch(self):
#         print("抓老鼠")


# wangcai = Dog()
# wangcai.drink()
# wangcai.run()
# wangcai.eat()
# wangcai.bark()
# wangcai.sleep()

xtq = Xiaotianquan()
xtq.run()
xtq.bark()

# cat = Cat()
# cat.run()
# cat.catch()


结果:
跑
神一样
汪汪
$$$$



神一样
汪汪
$$$$

父类的私有属性和私有方法

1.子类对象不能在自己的方法内部,直接访问父类的私有属性或私有方法

2.子类对象可以通过父类的公有方法间接访问到私有属性或私有方法

class A:
    def __init__(self):
        self.num1 = 100
        # 前面加两个下划线
        self.__num2 = 200

    def __test(self):
        print("私有方法:%d %d" % (self.num1, self.__num2))

    def test(self):
        print("父类的公有方法%d" % self.__num2)
        self.__test()


class B(A):
    def demo(self):
        # 1.子类的对象方法中不能访问父类的私有属性
        print("私有属性%d" % self.num1)
        # 不能调用父类的私有方法
        self.test()


# 创建一个子类对象

b = B()
# print(b)
# # 外界不允许访问私有属性和私有方法
# # print(b.__num2)
# # b.demo()
# # 外界可以访问父类的公有属性和公有方法
# print(b.num1)
#b.demo()
b.test()
# 子类对象可以调用父类的公有方法

●私有属性、方法是对象的隐私,不对外公开, 外界以及子类都不能直接访问

●私有属性、方法通常用于做-些内部的事情
?

class A:
    def __init__(self):
        self.num1 = 100
        # 前面加两个下划线
        self.__num2 = 200

    def __test(self):
        print("私有方法:%d %d" % self.num1, self.__num2)


class B(A):
    def demo(self):
        # 1.子类的对象方法中不能访问父类的私有属性
        print("私有属性%d" % self.__num2)
        # 不能调用父类的私有方法
        self.__test()



# 创建一个子类对象

b = B()
print(b)
# 外界不允许访问私有属性和私有方法
# print(b.__num2)
# b.demo()

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章           查看所有文章
加:2022-07-04 22:49:56  更:2022-07-04 22:54:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 15:56:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码