面向对象
封装:一个类就是一个封装,把具有共同属性和行为的对象封装在一起
继承:子类继承父类,可以使用父类下的属性和方法
多态:子类继承父类,定义了同名函数,执行内容不同
类的定义
class Emp:
name="张三"
age=23
def say(self):
print(self.name)
print(self.age)
e=Emp()
e.say()
构造器
用来赋初始值,后期可以修改,如果没有定义构造器,python会默认给一个无参的构造器,当对象被实例化后,第一个调用的函数就是构造器
class Stu:
def __init__(self,name,age):
self.name=name
self.age=age
def info(self):
print(self.name)
print(self.age)
s=Stu("小红",12)
s.info()
print(s.name)
get和set方法:
get用来获取变量,set用来设置变量,提供给他人的执行权限
class Stu:
def __init__(self,name,age):
self.name=name
self._age=age#私有变量
def getName(self):
return self.name
def setName(self,name):
self.name=name
def getAge(self):
return self._age
def setAge(self,age):
self._age=age
s=Stu("小明",23)
print(s.getName())
print(s.getAge())
print(s.name)
print(s.age)#报错
继承
class Father:
name='aa'
def sing(self):
print('aaaaaaaaaa')
class Son(Father):
age=23
s=Son()
print(s.name)
print(s.age)
s.sing()
定义私有变量
父类下的私有变量,子类无法使用
class Father:
name='aa'
__sex='男'
class Son(Father):
age=23
s=Son()
print(s.name)
print(s.__sex)#报错
调用父类构造器
class Father:
def __init__(self,name):
self.name=name
class Son(Father):
def __init__(self,name,age):
Father.__init__(self,name)
self.age=age
s=Son("小丽",12)
print(s.name)
print(s.age)
多态(重写)
class Father:
def sing(self):
print("京剧")
class Son(Father):
def sing(self):
print("流行歌曲")
s=Son()
s.sing()
多继承
class A:
a='a'
class B:
b='b'
class C(A,B):
c='c'
c1=C()
print(c1.a)
print(c1.b)
print(c1.c)