第五章 类的继承
5.1 python中什么是继承
如果要编写一个新类 student
需要的属性有:name,gender,school,score
能否利用person类已有的属性和方法?
class Person(object):
def init(self,name,gender):
self.name=name
self.gender=gender
class Student(Person):
def init(self,name,gender):
super(Student,self).init(name,gender)
self.school=school
self.score=score
什么是继承
新类不必从头编写
新类从现有的类继承,就自动拥有了现有类的所有功能
新类只需要编写现有类缺少的新功能
继承的好处
复用已有代码
自动拥有了现有类的所有功能
只需要编写缺少的新功能
父类和子类
父类,超类,基类
子类,派生类,继承类
继承树
继承的特点
子类和父类是is关系:
错误的继承
student类和book类是has关系:
has关系应该使用组合而非继承
student类和book类是has关系
class Student(Person):
def init(self,bookName):
self.book = Book(bookName)
python的继承:
总是从某个类继承
class MyClass(object):
pass
不要忘记调用super().init
def init(self,args):
super(SubClass,self).init(args)
pass