63.Python:继承

# Python learning
# coding:utf-8

# 1.什么是继承
# 一种新建类的方式,新建的类称为子类或派生类,被继承的类称为父类,又称基类或超类
# Python支持多继承:在Python中,新建的类可以继承一个或多个父类
# 多继承的优点与缺点
# 优点:子类可以同时遗传多个父类的属性,最大限度的重用代码
# 缺点:1.违背人的思维习惯;继承表达的是一种什么“是”什么的关系
# 2.代码可读性变差
# 3.不建议使用多继承,扩展性变差。有可能会引发菱形问题
# 如果涉及到一个子类不可避免的要重用多个父类的属性,应该使用Mixins机制

# 2.为何要用继承:解决类与类之间代码冗余问题

# class Parent1:
# x = 111
#
#
# class Parent2:
# pass
#
#
# class Sub1(Parent1): # 单继承
# pass
#
#
# class Sub2(Parent1, Parent2): # 多继承
# pass
#
#
# print(Sub1.__bases__)
# print(Sub2.__bases__)
# print(Sub1.x)


# 如何实现继承
class OldboyPeople:
school = 'OLD BOY'

def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex


class Student(OldboyPeople):

def choose_course(self):
print('%s 正在选课' % self.name)


class Teacher(OldboyPeople):

def __init__(self, name, age, sex, salary, level):
OldboyPeople.__init__(self, name, age, sex)
self.salary = salary
self.level = level

def score(self):
print('老师 %s 正在给学生打分' % self.name)


stu_obj = Student('sepia', 20, 'male')
print(stu_obj.__dict__)
print(stu_obj.school)
stu_obj.choose_course()

tea_obj = Teacher('egon', 30, 'male', 100000, 10)
print(tea_obj.__dict__)
print(tea_obj.school)
tea_obj.score()
posted @ 2021-07-06 13:59  SEPIA  阅读(44)  评论(0)    收藏  举报