美文网首页
面向对象的三大特征:封装、继承和多态

面向对象的三大特征:封装、继承和多态

作者: rensgf | 来源:发表于2021-04-17 23:52 被阅读0次

类,对象,属性,方法

    class TheFirstDemo:
        '''这是一个学习Python定义的第一个类'''
        # 下面定义了一个类属性
        add = 'http://c.biancheng.net'
        # 下面定义了一个say方法
        def say(self, content):
            print(content)

在创建类时,我们可以手动添加一个 ____init__() 方法,该方法是一个特殊的类实例方法,称为构造方法(或构造函数)。init() 方法可以包含多个参数,但必须包含一个名为 self 的参数,且必须作为第一个参数.
定义类的对象(实例化)的方法: 类名(参数)
定义类时,如果没有手动添加 init() 构造方法,又或者添加的 init() 中仅有一个 self 参数,则创建类对象时的参数可以省略不写。
self 代表该方法的调用者,即谁调用该方法,那么 self 就代表谁。

   class Person:
        def __init__(self):
            print("正在执行构造方法")
        # 定义一个study()实例方法
        def study(self):
            print(self,"正在学Python")
    zhangsan = Person()
    zhangsan.study()
    lisi = Person()
    lisi.study()

上面代码中,study() 中的 self 代表该方法的调用者,即谁调用该方法,那么 self 就代表谁。因此,该程序的运行结果为:

正在执行构造方法
<main.Person object at 0x0000021ADD7D21D0> 正在学Python
正在执行构造方法
<main.Person object at 0x0000021ADD7D2E48> 正在学Python
类方法与实例方法
python类封装

1.默认情况下,Python 类中的变量和方法都是公有(public)的,它们的名称前都没有下划线(_);
2.如果类中的变量和函数,其名称以双下划线“__”开头,则该变量(函数)为私有变量(私有函数),其属性等同于 private。

python类继承
子类拥有父类所有的属性和方法,即便该属性或方法是私有(private)的。使用多继承经常需要面临的问题是,多个父类中包含同名的类方法。对于这种情况,Python 的处置措施是:根据子类继承多个父类时这些父类的前后次序决定,即排在前面父类中的类方法会覆盖排在后面父类中的同名类方法。
super():子类中定义构造方法,必须在该方法中调用父类的构造方法。调用父类构造方法的方式有 2 种,分别是:

1.类可以看做一个独立空间,在类的外部调用其中的实例方法,可以向调用普通函数那样,只不过需要额外备注类名(此方式又称为未绑定方法);
2.使用 super() 函数。但如果涉及多继承,该函数只能调用第一个直接父类的构造方法。

super().init(self,···)

class People:
    def __init__(self,name):
        self.name = name
    def say(self):
        print("我是人,名字为:",self.name)
class Animal:
    def __init__(self,food):
        self.food = food
    def display(self):
        print("我是动物,我吃",self.food)
class Person(People, Animal):
    #自定义构造方法
    def __init__(self,name,food):
        #调用 People 类的构造方法
        super().__init__(self,name)
        #super(Person,self).__init__(name) #执行效果和上一行相同
        #People.__init__(self,name)#使用未绑定方法调用 People 类构造方法
        #调用其它父类的构造方法,需手动给 self 传值
        Animal.__init__(self,food)    
per = Person("zhangsan","熟食")
per.say()
per.display()

相关文章

  • java面向对象的三大特征 之 封装

    面向对象的三大特征: 封装 继承 多态 封装

  • iOS基础 - oc的三大特性

    封装、继承、多态 oc是面向对象的程序设计语言,而面向对象的三大特征:封装、继承、多态。 封装 没有绝对的封装,只...

  • Java基础语法

    1、面向对象的三大特征《 封装、继承、多态》

  • Java的封装、继承、多态 包

    目录: 面向对象的三大特征:封装、继承、多态包方法重写superinstanceof 面向对象的三大特征:封装、继...

  • 31-封装、继承、多态

    封装、继承、多态 面向对象编程有三大重要特征:封装、继承和多态。 继承 继承机制实现了代码的复用,多个类公用的代码...

  • 面向对象的三个基本特征

    面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要...

  • Java多态及相关

    面向对象有三大特征:封装、继承、多态。从一定角度看,封装与继承是为多态准备的。多态也是面向对象中最重要的概念。 多...

  • js-继承和闭包

    继承和闭包 一、面向对象的三大特征 封装 继承 多态 二、什么是继承 继承是面向对象软件技术当中的一个概念,与多态...

  • Java基础知识(1)

    一、面向对象 面向对象的基本特征封装、继承、多态封装就是隐藏对象的属性和实现细节,仅对外暴露公共的访问方式。继承就...

  • Java面向对象编程——封装和继承

    面向对象是编程的重点,涉及到类的封装、继承、抽象、多态及接口的设计等。其中,封装、继承、多态是面向对象的三大特征。...

网友评论

      本文标题:面向对象的三大特征:封装、继承和多态

      本文链接:https://www.haomeiwen.com/subject/aqbpgktx.html