サブクラスは親クラスのメソッドを呼び出します

同じプロパティやメソッドこのサブクラスは、独自のプロパティやメソッドの呼び出しによって表される場合には、

スーパーコール親クラスのプロパティまたはメソッド。

呼ばれるサブクラスのプロパティはサブクラスには存在しないし、このコールは、スーパー、親クラスのプロパティやメソッドのとき

1.方法
サブクラスのメソッドは、呼び出しの形で2を含む、親クラスを呼び出します。一つの形態は、クラスの継承方法の中の親クラスを呼び出すことによって方法で、この方法の別の形態は、サブクラスの方法でインスタンス化され、継承後の親クラスを呼び出すことです。下図のように:

Python_サブクラスは親クラスのメソッドを呼び出します
自己の本来の意味は、自分自身の例をポイントである(相続の仕方によって呼び出されたときに親クラスのサブクラス属性の中に、私たちは自己位置パラメータを持参しなければならない、ということに注意してください(のみインスタンス化で自己とするとき、省略財産インスタンスを起動するには));インスタンスはああインスタンス化されたためとプロパティまたはメソッドは、親クラスを呼び出すことによって継承されたインスタンスを、あなたは、自分の引数を渡しません!
インスタンス化中及びプロパティインスタンス省略(自己を起動するために、自己(自己の位置をもたらすために必要なパラメータ、親クラスの継承方法を呼び出すことにより、内側子プロパティことに注意してください。次のようにコードブロックの一部であります本来の意味は))、独自の例を指している、とインスタンスがああインスタンス化されているため、プロパティやメソッドが親クラスを呼び出すことによって継承されたインスタンスは、あなたは、自分の引数を渡しません!

次のようにコードブロックの部分は、次のとおり

class Person():
    "人的类"
    def __init__(self,name,age,sex): self.name = name self.age = age self.sex = sex def eat(self): print("%s开始吃饭了"%self.name) class Student(Person): "学生类" def __init__(self,name,age,sex,classnaem): #子类调用父类的构造函数进行初始化 Person.__init__(self,name,age,sex) #通过子类把参数传给父类(self不能少,self只有在实例化和实例调用类时才能省略,此处不是) self.classnaem = classnaem def course(self): print("%s在%s上课"%(self.name,self.classnaem)) def done(self): print("这个学生在干嘛?") #子类调用父类方法 Person.eat(self) #子类在调用父类方法必须要传self #实例化一个子类 student = Student("周明",23,'男',"11届土木3班") #调用子类本身的方法 student.course() #通过子类调用父类的方法--->实例化之后来调用父类的方法 student.eat() #调用子类的方法,在子类方法中调用了子类的方法,与student.eat有区别 student.done()

親クラスの名前が変更された場合は、この時点では、その後、親クラス名に使用サブクラス内のすべての場所が変更されることになります。すべてのそのような方法は、私たちが道2を選択しているため、ポストメンテナンスに簡単ではありません。
2.第二のアプローチ
後の保守コードを容易にするために、親クラス名スーパーの代わりに使用し、以下に示すとおり

Python_サブクラスは親クラスのメソッドを呼び出します
スーパーを使用する利点は、1我々は唯一のサブクラスの背面に親クラス名の名前を変更する必要があり、そう遅く親、親クラス名の変更の名前を置き換えることができ、サブクラス他の親クラス名を変更することはできません、2番目はありますあなたが親クラスのメソッドを呼び出すときにスーパーを使用した後、あなたはパラメータの自己を渡すことはできません。
コードブロックの一部です。

class Person():
    "人的类"
    def __init__(self,name,age,sex): self.name = name self.age = age self.sex = sex def eat(self): print("%s开始吃饭了"%self.name) class Student(Person): "学生类" def __init__(self,name,age,sex,classnaem): #子类调用父类的构造函数进行初始化 # Person.__init__(self,name,age,sex) #通过子类把参数传给父类(self不能少,self只有在实例化和实例调用类时才能省略,此处不是) #使用super来替换父类名 super().__init__(name,age,sex) #通过子类把参数传给父类,用super可以省略self self.classnaem = classnaem def course(self): print("%s在%s上课"%(self.name,self.classnaem)) def done(self): print("这个学生在干嘛?") #子类调用父类方法 super().eat() #子类在调用父类方法,使用super可以省略self #实例化一个子类 student = Student("周明",23,'男',"11届土木3班") #调用子类本身的方法 student.course() #通过子类调用父类的方法--->实例化之后来调用父类的方法 student.eat() #调用子类的方法,在子类方法中调用了子类的方法,与student.eat有区别 student.done()


参考:https://www.cnblogs.com/a8457013/p/8438490.html

おすすめ

転載: www.cnblogs.com/klb561/p/11361585.html