# 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