这是我和行业上百位来自BAT、美团、360、今日头条、京东、易车、好未来的测试开发专家进行了深度交流和探讨,分析了行业和各个大厂对测试开发工程师的技能要求,并总结了这套测试开发工程师的学习路线,希望可以在你的成长为测试开发的路上,助你一臂之力
回答:
类的继承是指根据已经存在的类派生出新的类,以便于可以在新类中添加或修改功能,包括基本属性和方法。重写是指子类重写了父类中已有的方法与属性。
区分类的继承和重写,可以从以下几个方面着手:
1.需不需要改变基本的父类实现,如果父类的方法和属性已经满足子类的需求,那么直接使用继承即可。如果父类实现不满足需求,那么就要修改父类,或者重写父类的方法,扩展新功能。
2.子类与父类的关系,如果子类属于父类的一种细化,或者是父类的一种特殊实现,那么可以使用继承;如果子类与父类的关系是平级,那么可以使用重写,把重写的方法扩展为独立的新实现。
在使用继承时,父类构造方法可以通过使用super方法来调用。super() 函数是用于调用父类(超类)的一个方法,而不是覆盖父类的方法。
一个简单的例子:
# 父类
class Parent:
def __init__(self, name):
self.name = name
def get_name(self):
print(self.name)
# 子类继承父类
class Child(Parent):
def __init__(self, name, age):
# 调用父类的构造方法
super().__init__(name)
self.age = age
# 重写父类的方法
def get_name(self):
print("The name is: " + self.name)
# 创建子类对象
c = Child("Tom", 18)
# 调用方法
c.get_name()
在上面的例子中,Child类继承了Parent类。使用super()函数调用了父类的构造方法,保证了在创建Child对象时能够使用Parent中定义的属性和方法。
在Child类中重写了Parent中的get_name方法,添加了新的功能,在调用该方法时能够输出独立于父类的内容。