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

  

posted @ 2019-08-15 22:29  jack-kaller  阅读(125)  评论(0编辑  收藏  举报