类的继承

Posted 算法与编程之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的继承相关的知识,希望对你有一定的参考价值。

类的继承:一个类继承另一个类,自动拥有这个类的属性和方法,类似于包含与被包含的关系。被继承的类称为父类--子类则是继承父类的类。一个父类可以有多个子类;一个子类可以有多个父类(多继承)

问题

创建子类时,要是直接进行调用,系统会报错,必须对子类进行实例化。那要如何对子类进行实例化呢?

方法

首先先创造父类,将其属性定义,然后创建多个子类(格式子类(父类)),接着对子类实例化,在对子类实例化时也要将属性补充完整。

代码清单

错误示范:

#父类:将所有类的公共属性和方法进行统一定义
class Dad():
    def __init__(self,greet,demandmoney):
        print('老爸我没生活费了!')
        self.greet=greet
        self.demandmoney=demandmoney
    def f(self):
        print('今天你很帅,'.format(self.greet,self.demandmoney))
    def ff(ff):
        print('我没钱耍朋友了')
#子类(父类):可继承父类所有属性
class Girl(Dad):
    pass    #mean do nothing 但是仍然拥有父类的属性和方法
class Son(Dad):
    pass    #mean do nothing
    
a=Girl()
a.ff()
a.f()

运行结果:Traceback (most recent call last):
  File "D:/123456/456.py", line 16, in <module>
    a=Girl()
TypeError: Dad.__init__() missing 2 required positional arguments: &apos;greet&apos; and &apos;demandmoney&apos;

正确代码:

#父类:将所有类的公共属性和方法进行统一定义
class Dad():
    def __init__(self,greet,demandmoney):
        print(&apos;老爸我没生活费了!&apos;)
        self.greet=greet
        self.demandmoney=demandmoney
    def f(self):
        print(&apos;今天你很帅,&apos;.format(self.greet,self.demandmoney))
    def ff(ff):
        print(&apos;我没钱耍朋友了&apos;)
#子类(父类):可继承父类所有属性
class Girl(Dad):
    pass    #mean do nothing 但是仍然拥有父类的属性和方法
class Son(Dad):
    def son(self):#子类可以拥有自己的属性与方法
        print(&apos;老爸我想多一点生活费&apos;)
    
#a=Girl()
#a.ff()
#a.f()
#创建对象(将子类进行实类化)
a=Girl(&apos;老爸早上好&apos;,1500)
a.ff()
a.f()
b=Son(&apos;老爸早上好&apos;,2000)
b.ff()
b.f()
b.son()

打印结果:老爸我没生活费了!
我没钱耍朋友了
老爸早上好今天你很帅,1500
老爸我没生活费了!
我没钱耍朋友了
老爸早上好今天你很帅,2000
老爸我想多一点生活费


结语

通过此次实验,我们更加了解了类的继承,以及要对子类实例化,对其实例化时也要将属性补充完整。

以上是关于类的继承的主要内容,如果未能解决你的问题,请参考以下文章

python语言中多继承中super调用所有父类的方法以及要用到的MRO顺序

类的继承

面向对象编程语言特征:封装继承多态

JAVA基础总结一

201771010143 张云飞《面向对象程序设计(java)》第六章学习总结

java继承