zoukankan      html  css  js  c++  java
  • Python面向对象编程

    # Python中的类的概念和其他语言相比没什么不同
    # 比较特殊的是protected和private在Python中是没有明确限制的
    # 一个惯例是用单下划线开头的表示protected,用双下划线开头的表示private
    
    # Python中定义一个类
    class class1:
            """Class A"""  # 类定义中紧跟着类名字下一行的字符串叫做docstring,
                           # 可以写一些用于描述类的介绍,如果有定义则通过“类名.__doc__”访问
            print('class1')
        # 构造函数,用关键字“__init__”
        # 在实例化对象时,构造函数被自动调用,一般用于初始化变量
        # self:在类中的方法,第一个参数必须是self  
        def __init__(self,name,job):
            print('I am __init__ in class1')
            print('My name is '+ name+' My job is '+job)
            # 定义属性,一定要用self.属性名
            self.myname=name
            self.myjob=job
    
            # 定义类中的方法:
        def myfunc(self,funcName):
            print('I an in class1.myfunc')
            print(funcName)
    
    # 在实例化类时传入参数给构造函数
    a=class1("keloli","student")
    print(a.myname)
    a.myfunc("func1")
    
    # 输出
    class1
    I am __init__ in class1
    My name is keloli My job is student
    keloli
    I an in class1.myfunc
    func1
    

      

    # 类的继承与重载
    # 继承:把某一个或多个类(基类)的特征拿过来
    # 重载:在子类(派生类)中多继承来的特征重新定义
    
    # 单继承:父亲可以说话,小儿子继承了父亲,但是减弱了父亲的说话能力
    # 父亲类(基类)
    class father():
        def speak(self):
            print("father speak")
    # 大儿子类(单继承父亲类)
    class son1(father):
        pass
    
    s1=son1()
    s1.speak()
    
    # 多继承:父亲可以说话,母亲可以写字,
    # 女儿继承了父亲和母亲,还可以听
    # 母亲类(基类)
    class mother():
        def write(self):
            print('mother write')
    
    # 女儿类(多继承父亲和母亲)
    class daughter(father,mother):
        def listen(self):
            print('daughter listen')
    
    dau=daughter()
    dau.speak()
    dau.write()
    dau.listen()
    
    # 重载
    # 小儿子类重载父亲类,减弱了父亲的说话能力
    class son2(father):
        def speak(self):
            print('son2 speak')
    
    s2=son2()
    s2.speak()
    
    # 输出
    father speak
    father speak
    mother write
    daughter listen
    son2 speak
    

      

  • 相关阅读:
    【计算机组成原理】00-开篇词
    【设计模式】05-面向对象四大特性能解决什么问题
    【设计模式】04-面向对象谈了啥
    【设计模式】03-面向对象、设计原则、设计模式、编程规范、重构的关系
    模拟银行业务调度系统逻辑
    模拟交通灯管理系统逻辑设计
    JDK1.5新特性(七)……Annotations
    代理与动态代理
    类加载器
    JDK1.5新特性(六)……Generics
  • 原文地址:https://www.cnblogs.com/lcxiao/p/11360995.html
Copyright © 2011-2022 走看看