精华内容
下载资源
问答
  • 在子类中怎么直接调用父类方法
    千次阅读
    2021-08-29 00:16:21

    C++——子类调用父类方法

    原创声明:本文系博主原创文章,转载或引用请注明出处。

    1. 如果类B是类A的子类,则在类B的成员方法中调用类A的方法时,可以直接以 A::method(paramlist); 来调用。

    2. 若子类B重写(overwrite)了父类A的同名方法,则类A的实例调用的是类A的方法,类B的实例调用的是类B的方法;将类B实例的指针指向类A的指针变量ptr,则通过ptr调用的是类A的方法;

    3. 若定义了类B的实例B1,则通过B1调用类A的方法的用法为: B1.A::method(paramlist); 

    4. 若子类与父类方法同名,但是参数列表不一致,在子类中调用父类方法,由于重写规则,导致编译出错。此时可以使用using语句,使父类方法在子类中可见。

    【参考资料】

    1. https://blog.csdn.net/qq_38665104/article/details/80501809
    2. http://bbs.21ic.com/icview-2831798-1-1.html
    更多相关内容
  • 本文实例讲述了C#实现子类调用父类方法,分享给大家供大家参考之用。具体方法如下: 一、通过子类无参构造函数创建子类实例 创建父类Person和子类Student。 public class Person { public Person() { ...
  • 如果子类没有定义构造方法,则调用父类的无参数的构造方法。  2. 如果子类定义了构造方法,不论是无参数还是带参数,创建子类的对象的时候,首先执行父类无参数的构造方法,然后执行自己的构造方法。  3. ...
  • 主要介绍了C++类继承之子类调用父类的构造函数的实例详解的相关资料,希望通过本文大家能够掌握C++类继承的相关知识,需要的朋友可以参考下
  • Python在子类中调用父类方法

    千次阅读 2021-08-07 20:17:17
    子类调用父类方法时,一般都是想对父类方法进行扩展 class Person(object): def __init__(self, name, age): self.name = name self.age = age def driver(self): print('开车太好玩了 ,10迈

    1、在子类中调用父类方法

    • super().方法名()
    • 类名.方法名(self)
    • spuer(要从哪一个类的上一级类开始查找, self).方法名()
    • 子类调用父类方法时,一般都是想对父类方法进行扩展
    class Person(object):
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def driver(self):
            print('开车太好玩了 ,10迈,太快了')
    
    
    class Father(Person):
        # 如果我们现在想在原有父类方法基础上扩展,例如我们现在需要重写一个init方法
        # 可以接收 name, age ,gender三个属性
        def __init__(self, name, age, gender):
            # 在父类方法中已经添加了name,和age我们可不可以直接使用呢???
            super().__init__(name, age)
            # 在父类方法的基础上我们在添加一个子类方法独有的功能
            self.gender = gender
    
        def driver(self):
            print('我要去天安门完,开挖掘机不让我进')
    
        def __str__(self):
            return f'我的姓名是{self.name},我的年龄是{self.age},我的性别是{self.gender}'
    
    class Son(Father):
        def driver(self):
            # 调用Person中的dirver
            # TypeError: driver() missing 1 required positional argument: 'self'
            # Person.driver()
            Person.driver(self)
            # 从Father类的上一级类开始查找方法,并进行调用
            super(Father,self).driver()
    
            # 调用Father中的dirver
            super().driver()
            # 格式:super(从哪个类的上一级开始查找,self).方法名()
            # 如果类名是当前类,可以省略括号内的内容
            super(Son, self).driver()
            # 书写特有功能
    
    
    # 所有的参数都传递到了Father类中,并且添加为当前对象的属性
    print(Father('Jack', 28, '男'))
    s1 =Son('xiaoming', 12, '男')
    s1.driver()
    
    # 子类中调用父类方法的三种方式:
    # super().方法名()   # 只能调用当前类的上一级类中的方法或函数
    # 类名.方法名(self)  # 所使用的类名,必须在当前类的继承关系中  这种方法可以调用不在类中的类方法,但是不能使用self作为对象出现
    # super(要从哪一个类的上级类开始查询,self).方法名()  # 类名必须在继承关系内,如果类名是当前所在的类,则可以将括号内内容省略,就是第一中方式
    

    展开全文
  • 子类对象调用父类方法

    千次阅读 2021-09-06 13:32:05
    class Person(object): def init...class Father(Person): # 如果我们现在想原有父类方法基础上扩展,例如我们现在需要重写一个init方法 # 可以接收 name, age ,gender三个属性 def init(self, name, age, gender).

    class Person(object): def init(self, name, age): self.name = name self.age = age

    def driver(self):
        print('开车太好玩了 ,10迈,太快了')

    class Father(Person): # 如果我们现在想在原有父类方法基础上扩展,例如我们现在需要重写一个init方法 # 可以接收 name, age ,gender三个属性 def init(self, name, age, gender): # 在父类方法中已经添加了name,和age我们可不可以直接使用呢??? super().init(name, age) # 在父类方法的基础上我们在添加一个子类方法独有的功能 self.gender = gender

    def driver(self):
        print('我要去天安门完,开挖掘机不让我进')
    ​
    def __str__(self):
        return f'我的姓名是{self.name},我的年龄是{self.age},我的性别是{self.gender}'

    class Son(Father): def driver(self): # 调用Person中的dirver # TypeError: driver() missing 1 required positional argument: 'self' # Person.driver() Person.driver(self) # Monkey.driver(Monkey()) # 从Father类的上一级类开始查找方法,并进行调用 super(Father,self).driver()

        # 调用Father中的dirver
        super().driver()
        # 格式:super(从哪个类的上一级开始查找,self).方法名()
        # 如果类名是当前类,可以省略括号内的内容
        super(Son, self).driver()
        # 书写特有功能

    所有的参数都传递到了Father类中,并且添加为当前对象的属性

    print(Father('Jack', 28, '男')) s1 =Son('xiaoming', 12, '男') s1.driver()

    子类中调用父类方法的三种方式:

    super().方法名() # 只能调用当前类的上一级类中的方法或函数

    类名.方法名(self) # 所使用的类名,必须在当前类的继承关系中

    super(要从哪一个类的上级类开始查询,self).方法名() # 类名必须在继承关系内,如果类名是当前所在的类,则可以将括号内内容省略,就是第一中方式

    class Monkey(object):

    def driver(self):

    print('我在骑自行车')

    #

    m1 = Monkey()

    # 如果使用实例调用实例方法,可以自动将对象传入方法

    m1.driver()

    # 如果使用类调用实例方法,需要手动传递实例到方法内

    Monkey.driver(m1)

    展开全文
  • 本文实例讲述了Python实现子类调用父类方法。分享给大家供大家参考。具体实现方法如下: python和其他面向对象语言类似,每个类可以拥有一个或者多个父类,它们从父类那里继承了属性和方法。如果一个方法在子类的...
  • php实现在子类中调用父类方法,这个和平常的调用父类是不一样的,希望你们能有收获
  • 主要介绍了Java父类调用子类方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 子类调用父类方法

    千次阅读 2019-09-26 22:42:02
    1.方式一子类调用父类方法,包含2形式的调用。一种形式是类内部通过继承的方式调用父类的方法,另外一种形式是子类实例化后之后通过继承的方式来调用父类的方法。如下图所示: 注意一点,...

    当有相同的属性或者方法是this子类表示调用自己的属性或者方法,

    super调用父类的属性或者方法。

    当子类调用的属性方法在子类中不存在时,那么this和super都是调用父类的属性或者方法

    1.方式一
    子类调用父类的方法,包含2中形式的调用。一种形式是在类内部通过继承的方式调用父类的方法,另外一种形式是子类实例化后之后通过继承的方式来调用父类的方法。如下图所示:

    Python_子类调用父类的方法
    注意一点,在子类内部通过继承的方式调用父类的属性时,必须要带上self位置参数(self只在实例化过程中和在实例调用属性时才能省略(self本来的含义就是指向实例自己));而实例在通过继承调用父类的属性或方法时,则不用传self参数,因为实例已经实例化了呀!!!
    该部分的代码块如下:注意一点,在子类内部通过继承的方式调用父类的属性时,必须要带上self位置参数(self只在实例化过程中和在实例调用属性时才能省略(self本来的含义就是指向实例自己));而实例在通过继承调用父类的属性或方法时,则不用传self参数,因为实例已经实例化了呀!!!

    该部分的代码块如下:

    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.方式二
    使用super来代替父类名,以方便代码的后期维护,见下图:

    Python_子类调用父类的方法
    使用super的好处,一是可以代替父类名,这样后期父类名更改了,我们只需要更改子类名称后面的父类名即可,子类中其他的父类名可以不用更改;二是使用了super后,调用父类方法时可以不传参数self。
    该部分的代码块为:

    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

    转载于:https://www.cnblogs.com/klb561/p/11361585.html

    展开全文
  • 子类中调用父类方法

    千次阅读 2021-01-12 19:09:48
    __init__(self, ...)可以将父类中的init中的属性重复调用,减少代码的重复class Vehicle:def __init__(self, name, speed, load, power):self.name = nameself.speed = speedself.load = loadself.power = powerdef...
  • c++ 子类对象调用父类方法

    千次阅读 2021-03-08 20:37:26
    第一种方式就是子类重写父类的方法在子类中定义和父类同样的方法方法中调用父类方法 父类代码 #pragma once #include "CClientSocket.h" class CTCPInterface { public: CTCPInterface(); ~...
  • iOS-在子类中调用父类私有方法

    千次阅读 2021-12-17 16:33:46
    三方中在.h中声明的方法比较好重写,直接子类里重写方法,如果需要重调父类原有方法可以用super直接调用。而一些私有方法并没有在.h中声明,这时我们也可以直接重写父类方法,但是相对于想要重调父类方法,就不能...
  • 父类: public class Fu { public Fu(){ System.out.println(this.getClass().getName()); this.f1(); } public void f1(){ System.out.println("1234"); } } 子类: public class Zi extends Fu{ public ...
  • JAVA子类调用父类构造方法

    千次阅读 2021-03-06 16:59:23
    public class MyException extends Exception{} //MyException类只有一个隐含的默认构造方法尽管Exception类定义了如下形式的构造方法:public Exception(String msg)但MyException类不会继承...
  • java子类调用父类方法

    千次阅读 2021-03-22 17:40:41
    当一个类继承于另一个类,子类中没有父类的方法时,用子类的对象调用方法时,会首先在子类中查找,如果子类中没有该方法,再到父类中查找。 当一个方法在父类中定义时,调用方法时会使用父类中的属性。 如果该...
  • 构造子类时。子类创建完,即拥有父类的属性,所以构造子类...1.子类构造函数没写super()并且子父类具有无参构造函数。那么子类第一行便会自动一条隐身的语句super 父类代码:具有无参构造函数 public class F...
  • Java子类调用父类的构造方法

    千次阅读 2020-05-20 20:44:47
    一、自动调用父类无参构造方法 //这是父类 public class SuperClass { //父类无参构造方法 public SuperClass(){ System.out.println("父类无参构造方法"); } //父类带参构造方法 public SuperClass(String ...
  • java子类调用父类构造方法

    千次阅读 2021-04-16 16:41:33
    Java子类的构造过程,必须调用其父类的构造函数,是因为有继承关系存在时,子类要把父类的内容继承下来,通过什么手段做到的?     答案如下:     当你new一...
  • public class Teacher extends Employee { ... // 可以直接父类的成员方法 System.out.println("子类方法执行!"); } } 我的理解: 父类方法 method() 是成员方法,虽然子类重新覆盖了,但是子类也继承
  • 关于Java中子类调用父类方法

    千次阅读 2022-04-20 16:42:34
    当一个类继承于另一个类,用子类的对象调用方法时,会首先在子类中查找,如果子类中没有改方法,再到父类中查找。当一个方法在父类中定义时,调用方法时会使用父类中的属性。如果该方法中又调用了其他方法,那么...
  • 运行环境idea 2017.1.1spring 3.2.9.RELEASE需求背景需要实现一个功能,该功能有2个场景A、B,大同小异抽象一个...在调用super.BaseMethod()的基础上补充自己的差异代码错误实现与描述1、Base基类注入Bean,使...
  • java子类调用父类方法是什么

    千次阅读 2021-02-06 21:34:33
    java子类调用父类方法:1、子类的对象调用方法时,会首先子类中查找,如果子类中没有该方法,再到父类中查找;2、如果该方法中又调用了其他方法,那么还是按照之前的顺序,先子类中查找,再在父类中查找。...
  • Java里子类调用父类构造方法问题

    千次阅读 2021-02-13 01:44:43
    Java子类的构造过程,必须调用其父类的构造函数,是因为有继承关系存在时,子类要把父类的内容继承下来,通过什么手段做到的?答案如下:当你new一个子类对象的时候,必须首先要new一个父类的对像出来,这个...
  • 本篇文章里小编给大家整理了关于java子类调用父类方法中包含子类重写的实例方法以及相关知识点,需要的朋友们可以学习下。
  • 子类调用父类的用法

    2021-06-03 23:45:09
    如果子类没有重写父类的方法调用父类方法用不用super关键字结果都一样。 如果子类重写父类的方法调用父类方法必须用super关键字。 class TestA{ public void a(){ System.out.println("this is TestA a ...
  • 如何在子类中调用父类的函数

    千次阅读 2020-12-18 16:22:00
    父类的函数在子类中直接可以用,如果担心歧义可以使用作用域标识符:: 如果子类重写了父类的函数,而此时想要使用父类的函数则必须使用作用域标识符::

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 509,860
精华内容 203,944
热门标签
关键字:

在子类中怎么直接调用父类方法