精华内容
下载资源
问答
  • 方式一子类调用父类的方法,包含2中形式的调用。一种形式是在类内部通过继承的方式调用父类的方法,另外一种形式是子类实例化后之后通过继承的方式来调用父类的方法。如下图所示:注意一点,在子类内部通过继承的...

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

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

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

    1.方式一

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

    注意一点,在子类内部通过继承的方式调用父类的属性时,必须要带上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来代替父类名,以方便代码的后期维护,见下图:

    使用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

    展开全文
  • 本文实例讲述了Python实现子类调用父类的方法。分享给大家供大家参考。具体实现方法如下: python和其他面向对象语言类似,每个类可以拥有一个或者多个父类,它们从父类那里继承了属性和方法。如果一个方法在子类的...
  • 子类调用父类方法

    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

    展开全文
  • 如题,子类Print 方法调用父类的 see方法,父类的see方法调用 父类和子类共有的方法(即父类的Show方法,以及子类重写后的Show方法),请问最后返回的是哪个结果。 测试 parent 类 public class Parent { public ...

    如题,子类Print 方法调用父类的 see方法,父类的see方法调用 父类和子类共有的方法(即父类的Show方法,以及子类重写后的Show方法),请问最后返回的是哪个结果。

    测试

    parent 类

    public class Parent {
        public String Show(){
            return "there is parent show";
        }
    
        public String see(){
            return Show();
        }
    
    }
    

    child 类

    public class Child extends Parent{
        @Override
        public String Show(){
            return "there is child show";
        }
    
        public String Print(){
            return super.see();
        }
    }
    

    Test 类

    public class Test {
        public static void main(String[] args) {
            Child child=new Child();
            System.out.println(child.Print());
        }
    }
    

    运行结果

    在这里插入图片描述

    问题产生的地方。

    org.apache.catalina.core internalDoFilter 方法
    在这里插入图片描述
    这里调用父类 父类 FrameworkServletservice 方法,之后又调用 父类 HttpServletservice 方法,我测试的时候用post方法,此时进入了如下界面
    在这里插入图片描述
    跟踪测试的时候发现没有进入该类的doPost方法中,而是进入了子类的doPost方法,顾有此疑问。

    展开全文
  • java子类调用父类构造器函数

    万次阅读 多人点赞 2019-06-25 15:52:54
    java子类调用父类构造器函数详解

    正文

    class FatherClass{
        public FatherClass(){
            System.out.println("父类 无参 构造函数");
        }
        public FatherClass(int i){
            System.out.println("父类 一个参数构造函数super = "+i);
        }
        public FatherClass(int i,String j){
            System.out.println("父类 一个参数构造函数superi = "+i+",superj = "+j);
        }
    
    }
    
    class SonClass extends FatherClass{
        public SonClass(){
    //      super(22);//line 1
            System.out.println("子类 无参 构造函数");
        }
        public SonClass(int a){
            super(33,"Hello");//line 2
            System.out.println("子类一个参数构造函数sub = "+a);
        }
        public void fun(int a){//子类中定义一个实例函数
            //super(33,"Hello");//构造函数调用必须声明在构造函数中,这行代码不注释的话会报错
            System.out.println("子类一个参数构造函数sub = "+a);
        }
    }
    public class ConstructorExtend {//测试子类继承父类的构造函数
        public static void main(String args[]){
    //  FatherClass fa = new FatherClass();
    //  FatherClass fa1 = new FatherClass(100);
    //  SonClass son = new SonClass();
        SonClass son1 = new SonClass(200);
        son1.fun(2);
        }
    }
    

    子类 调用 父类的构造函数:(构造函数不会被继承,只是被子类调用而已)

    1、子类所有的 构造函数 默认调用父类的无参构造函数(其实是默认省略掉了一行代码:super(););省略掉的这行super()代码可以自行添加到构造函数的第一行(必须是第一行,否则报错)

    2、如果父类没有定义构造函数,系统会默认定义一个无参无返回值的构造函数,子类继承时无需(无需的意思是:可以写可以不写)在子类构造函数中显式调用super( );如果父类定义了有参构造函数,此时子类的构造函数中第一行必须显式调用父类定义的某个有参数构造函数。即,显式调用对应的参数个数、对应参数类型与此super( [arg0][,arg1]…. )的父类构造函数。

    3、如果子类的某个构造函数 想 调用父类的其他的带参数的构造函数,在构造函数的第一行人为添加 super(val1,val2[,val3…]),super()括号中的变量数量由想调用的父类的构造函数中的变量数量决定。如代码中的line 2,调用的是父类构造函数中两个参数的构造函数,那么Super(20,”Hello”)就两个变量。

    4、自行添加super(val1,val2,…),就可以指定调用父类的那个参数类型和数量一致的构造函数。之后在此子类构造函数中,系统不会再默认调用父类无参构造函数;

    5、如果子类的每个构造函数都自行添加super([val1,]….),除非人为调用父类无参构造函数,否则的话父类的无参构造函数可以不写。有super指定调用的父类构造函数存在即可

    6、super指代父类对象,可以在子类中使用 super.父类方法名(); 调用父类中的方法(无论是类方法还是实例方法都可以),此外调用实例方法还可以在方法内部实例化再调用


    作者简洁

    作者:小碗汤,一位热爱、认真写作的小伙,目前维护原创公众号:『我的小碗汤』,专注于写golang、docker、kubernetes等知识等提升硬实力的文章,期待你的关注。 转载说明:务必注明来源(注明:来源于公众号:我的小碗汤, 作者:小碗汤)

    展开全文
  • 在本篇文章里小编给大家整理了关于java子类调用父类的方法中包含子类重写的实例方法以及相关知识点,需要的朋友们可以学习下。
  • 主要介绍了C++类继承之子类调用父类的构造函数的实例详解的相关资料,希望通过本文大家能够掌握C++类继承的相关知识,需要的朋友可以参考下
  • 关于子类调用父类是否必须使用super字段的解释: 不一定 1。当子类重写父类的函数时,在子类还需要调用父类的该函数时,需要使用到super(否则会默认使用的是子类的当前函数)。 2.调用父类的变量,需要使用super....
  • 子类调用父类的方法

    万次阅读 2019-04-01 19:25:51
    今天在看某项目源代码时,我看到了这样的代码 class B{ public: void printB(){ A::PrintA(); } ...原来子类调用父类就是这样调用的。 所有代码如下: class A{ public: void printA(){}...
  • 子类调用父类的构造函数情形分类 1.隐式的调用父类的无参构造 什么都不写,子类会自动调用分类的无参构造函数 2.若父类没有无参构造器,有有参构造器,子类中则需要super()第一行代码显示调用父类的有参构造 ...
  • Python 子类调用父类的方法

    千次阅读 2016-09-07 15:03:24
    Python实现子类调用父类的方法
  • QT子类调用父类的ui

    2020-08-08 13:59:56
    Qt 子类调用父类的ui ​ 首先,子类要包含父类的头文件和ui头文件 然后,通过构造的方式把父类指针传递给传递给子类*(最优方法,其他的也可以)* #ifndef MEWEB_H #define MEWEB_H //首先 #include <mexplore.h...
  • 子类调用父类构造方法的顺序 子类的构造方法总是先调用父类的构造方法,如果子类的构造方法没有明显地指明使用父类的哪个构造方法,子类就调用父类不带参数的构造方法。而父类没有无参的构造函数,所以子类需要在...
  • C++基础之子类调用父类方法

    万次阅读 2018-05-29 20:50:52
    25行想通过子类调用父类函数fun(int i),通过B1.A::fun(1),看到过有的人说用B1.parent::fun(1) 试了下发现出错3. 子类和父类函数名一样的函数fun,如果参数不一样,不管加不加virtual,当子类调用fun()时,会先...
  • java子类调用父类的方法:1、子类的对象调用方法时,会首先在子类中查找,如果子类中没有该方法,再到父类中查找;2、如果该方法中又调用了其他方法,那么还是按照之前的顺序,先在子类中查找,再在父类中查找。...
  • 子类调用父类的构造方法 父类的构造方法不能被子类继承。以下语句中MyException类继承了java.lang.Exception类。 public class MyException extends Exception{} // MyException类只有一个隐含的默认构造...
  • 1.方式一子类调用父类的方法,包含2中形式的调用。一种形式是在类内部通过继承的方式调用父类的方法,另外一种形式是子类实例化后之后通过继承的方式来调用父类的方法。如下图所示:注意一点,在子类内部通过继承的...
  • layer.open 调用子类窗口方法, 子类调用父类方法 <!-- 父类 --> var index = layer.open({ type : 2, title : title, shadeClose : true, shade : 0.8, ...
  • Java 子类调用父类构造函数----super()详解

    万次阅读 多人点赞 2017-07-17 16:51:54
    Java 子类调用父类构造函数----super()详解
  • 子类继承父类的一些方法并且子类已经覆盖此方法时,我们如何调用父类中的函数?这里提供两种调用方式:通过在子类中实例化父类的方式调用父类函数class Base:def __init__(self):print("Base.__init__")class A...
  • 子类调用父类的构造函数:  子类可以默认的调用父类的无参数构造函数,但是如果父类有有参数的构造函数,那么必须在子类的构造函数的第一句就显示的调用父类的构造函数 class A { public A(int i) { System.out...
  • python子类调用父类的方法

    千次阅读 2017-07-12 20:15:59
    python子类调用父类的方法 2013/10/09 by Crazyant 2 Comments python和其他面向对象语言类似,每个类可以拥有一个或者多个父类,它们从父类那里继承了属性和方法。如果一个方法在子类的实例中被调用,...
  • ////子类直接调用父类的public方法,可以把公用类放到父类中,这样子类中无需再定义一遍, testSon.fun3(); } // 从结果中可以看出:调用某个类的构造方法的时候总是会先执行父类的非静态代码块,然后执行父类的构造...
  • 子类调用父类的getclass() 父类为Person,子类为Studnet Student public void equal(Object obj) { System.out.println(super.getClass()+"/"+obj.getClass()); System.out.println(super.getClass()....
  • 为什么创建了一个子类对象会调用其父类的构造方法  如下代码示例:package simplejava;class Super { String s; public Super() { System.out.println("Super"); }}class Sub extends Super { public Sub() { ...
  • 子类调用父类方法时的内存如何分配,当方法区的子类载入方法时,会不会把父类的方法一同载入进去?
  • python 中进行面向对象编程,当在资历的实例调用父类的属性时, 由于子类的__init__方法重写了父类的__init__方法, 如果在子类中这些属性未经过初始化,使用时就会出错 # !/usr/bin/env python # -*- coding: utf-8 ...
  • Python 子类调用父类方法

    千次阅读 2014-12-08 17:09:12
    Python在继承时,如果子类重写了init()函数,则...那么有没有比较方便的方法来从子类调用父类呢?  第一种是直接使用父类的类名来直接调用。(Python3.3) [python] view plaincopyprint?
  • 准确一点的描述为:子类抛出的异常类型不能比父类抛出的异常类型更宽泛。假设父类抛出异常ParentException,另外有两个子类继承自ParentException分别为ChildException1, ChildException2, 那么 子类可以同时抛出...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,864
精华内容 10,345
关键字:

子类调用父类