用php做网站和go做网站中国网评中国网评
web/
2025/10/6 15:44:42/
文章来源:
用php做网站和go做网站,中国网评中国网评,小程序注册开发流程,网络直播营销的方式类的继承可以看成对类的属性和方法的重用#xff0c;能够大大的减少代码量#xff0c;继承是一种创建新类的方式#xff0c;在python中#xff0c;新建的类可以继承一个或多个父类#xff0c;也就是说在python中支持一个儿子继承多个爹。
通过继承创建的新类为子类或者派…类的继承可以看成对类的属性和方法的重用能够大大的减少代码量继承是一种创建新类的方式在python中新建的类可以继承一个或多个父类也就是说在python中支持一个儿子继承多个爹。
通过继承创建的新类为子类或者派生类。
被继承的类称为基类、父类或超类
1、子类会继承父类所有的功能属性和方法并且子类能够拥有自己的属性和方法对原来的父类不会产生任何影响。单继承中只有一个父类而多继承中有多个父类
2、调用属性和方法时优先调用子类的子类没有再去父类调用当子类的属性和方法与父类的属性和方法名称重复时以子类的属性和方法为准
3、多重继承时有相同名称的属性和方法时会优先继承写在前面的父类的重名属性和方法前面没有再去找下个父类父类也没有找爷爷类
4、多重继承时若子类有构造函数调用子类构造函数若子类没有会调用写在前面父类的构造函数再找后面的父类最后找爷类
5、调用父类若有构造函数在实例化子类时就要传相应多的参数需要多传参数时就需要重构父类
6、如果在子类需要父类的构造方法就需要显式地调用父类的构造方法或者不重写父类的构造方法。子类不重写 __init__实例化子类时会自动调用父类定义的 __init__如果重写了__init__ 时实例化子类就不会调用父类已经定义的 __init__要继承父类的构造方法可以使用 super 关键字重写父类构造函数
实验证明
1、实例化时优先调用本类和继承类的构造函数
2、调用属性和方法时优先调用子类的子类没有再去父类调用当子类的属性和方法与父类的属性和方法名称重复时以子类的属性和方法为准import requests,json
class Person(object):namePerson类nameagePerson类的agedef __init__(self,name,age):self.namenameself.ageageprint(这里是Person类的构造方法)def eat(self):print(%s 在吃饭(Person类eat方法)%self.name)def sleep(self):print(%s 在睡觉(Person类sleep方法)%self.name)
class Teacher(Person):nameTeacher类的namedef eat(self):print(%s 在吃饭(Teacher类eat方法) %self.name)
testTeacher(橙子,11)
test.eat()
test.sleep()
print(test.name)
print(Teacher.age)C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/Test/test.py
这里是Person类的构造方法
橙子 在吃饭(Teacher类eat方法)
橙子 在睡觉(Person类sleep方法)
橙子
Person类的ageProcess finished with exit code 0
实验证明
1、子类有构造函数优先调用子类的构造函数
2、子类没构造函数找父类调用父类构造函数
3、子类没有构造函数父类也没有构造函数找爷类调用爷类构造函数class A(object):def __init__(self):print(这个是A类构造函数)pass
class B(A):def __init__(self):print(这个是B类构造函数)pass
class C(A):def __init__(self):print(这个是C类构造函数)pass
class D(C,B):def __init__(self):print(这个是D类构造函数)pass
testD()C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/Test/test.py
这个是D类构造函数Process finished with exit code 0class A(object):def __init__(self):print(这个是A类构造函数)pass
class B(A):def __init__(self):print(这个是B类构造函数)pass
class C(A):def __init__(self):print(这个是C类构造函数)pass
class D(B,C):pass
testD()C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/Test/test.py
这个是B类构造函数Process finished with exit code 0class A(object):def __init__(self):print(这个是A类构造函数)pass
class B(A):pass
class C(A):def __init__(self):print(这个是C类构造函数)pass
class D(B,C):pass
testD()
C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/Test/test.py
这个是C类构造函数Process finished with exit code 0class A(object):def __init__(self):print(这个是A类构造函数)pass
class B(A):pass
class C(A):pass
class D(B,C):pass
testD()
C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/Test/test.py
这个是A类构造函数Process finished with exit code 0实验证明
如果在子类需要父类构造方法不重写父类的构造方法。实例化子类时会自动调用父类定义的 __init__如果重写了__init__ 时实例化子类就不会调用父类已经定义的 __init__要继承父类的构造方法可以使用 super 关键字重写父类构造函数class Father(object):def __init__(self, name):self.name nameprint(父类构造函数name: %s % (self.name))def getName(self):return Father self.name
class Son(Father):def __init__(self, name,age):super(Son, self).__init__(name)#重写父类构造方法self.ageageprint(子类构造函数name%s 年龄%s%(self.name,self.age))def getName(self):print(子类方法)
if __name__ __main__:son Son(runoob,30)son.getName()C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/Test/test.py
父类构造函数name: runoob
子类构造函数namerunoob 年龄30
子类方法Process finished with exit code 0
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87989.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!