首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么重写类函数有时不起作用?

重写类函数有时不起作用的原因可能有以下几点:

  1. 函数名错误:重写类函数时,需要确保子类中的函数名与父类中的函数名完全一致,包括大小写。如果函数名拼写错误或大小写不匹配,重写将不会生效。
  2. 参数不匹配:重写类函数时,子类中的函数参数必须与父类中的函数参数完全匹配。如果参数个数、类型或顺序不一致,重写将不会起作用。
  3. 函数修饰符不匹配:重写类函数时,子类中的函数修饰符必须与父类中的函数修饰符一致。例如,如果父类中的函数是私有函数(private),则子类中的函数也必须是私有函数,否则重写将不会生效。
  4. 函数调用错误:在使用重写的类函数时,需要确保正确调用子类中的函数。如果错误地调用了父类中的函数,重写将不会起作用。可以通过创建子类对象并调用该对象的函数来确保调用的是子类中的函数。
  5. 类继承关系错误:重写类函数只能在子类中进行,如果在其他类中尝试重写父类函数,重写将不会生效。确保子类正确继承了父类,并在子类中进行函数重写。

总结起来,重写类函数不起作用的原因通常是函数名、参数、修饰符、调用方式或类继承关系的错误。需要仔细检查代码,确保以上几点都正确无误。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

解析Vue为什么重写原数组函数方法

1、操作数组函数后---修改原有数据(被Vue重写) push 、pop 、shift 、unshift 、splice 、sort 、reverse 2、操作数组函数后---生成新数组 filter...============ 所以,Vue重写了push、pop等函数方法、例子如下: 通过重写后,vue虽然不能通过索引改变模板,但是可以操作上面的7个函数方法进行修改 4、原生数组函数方法演示          ...pop shift unshift sort reverse splice可以改变原数组,且页面有反应,直接赋值没有反应 // 【所以Vue从新写了Vue数组函数...,为什么,因为原数组函数里面的值改变了,但是没有更新在页面上】 // 【Vue重写的数组函数:1、调用原来的数组函数push等等对数组进行变化 2、重新解析模板

16710
  • python为什么需要函数这些概念

    是不是要定义一些,搞一些模块? 今天,我们就来探讨一下,为什么需要定义。 它到底解决了什么问题,与函数有什么不一样。 ---- 函数就是编写行动计划 我们用一个文件数据拆分小需求作为例子。...接下来,需求要升级一下 ---- ,另一种组织方式 因为执行过程中去掉了一些行,有时候你希望能够把这些记录单独输出文件,方便查看。 那不就又要多一个参数,用来指定输出文件名字或路径吗?...,由原来的 变成 现在我们已经很接近定义!...就是创建了一个数据字典和一系列操作这个数据字典的相关函数 如果你看到这里,那么恭喜你,你已经学会了 python 中定义。...我们用定义的代码如下: 行4:语法规则而已,相当于定义了函数 new 的名字 行5-6:这叫初始化函数,相当于函数 new 的执行过程。

    67241

    创建子类对象时,父构造函数中调用被子类重写的方法为什么调用的是子类的方法?

    public static void main(String[] args) { A a = new A(); B b = new B(); } } 问题:为什么创建...A对象的时候父会调用子类方法?...但是:创建B对象父会调用父的方法? 答案: 当子类被加载到内存方法区后,会继续加载父到内存中。...如果,子类重写了父的方法,子类的方法引用会指向子类的方法,否则子类的方法引用会指向父的方法引用。 如果子类重载了父方法,则子类重载方法引用还指向子类方法。...如果子类方法没有重写也没有重载父方法,则方法引用会指向父方法。 当子类对象创建时,会先行调用父的构造方法(构造方法也是方法),虚拟机会在子类方法区寻找该方法并运行。

    6.2K10

    为什么 React.js 中函数更好

    虽然 React 允许开发人员使用函数来创建组件,但近年来函数的使用越来越突出。在本文中,我们将探讨为什么在 React.js 开发中函数被认为优于。...React.js 中的函数 在我们深入研究使用函数相对于的优势之前,让我们简要了解一下 React.js 中两者之间的主要区别。 1.1 React 中的通常被称为“组件”。...组件扩展了 React.Component ,并且需要更多样板代码。 1.2 函数 另一方面,函数组件是定义 React 组件的一种更简洁、更现代的方式。它们也被称为“功能组件”。...函数组件本质上是返回 JSX 元素的 JavaScript 函数。 使用函数的优点 现在我们对 React.js 中的函数有了基本的了解,让我们来探讨一下为什么函数成为许多开发人员的首选。 2....简单性和可读性 开发人员喜欢函数组件的主要原因之一是它们的简单性。与组件相比,函数组件更简洁、更容易阅读。

    28640

    【C++ 语言】面向对象 ( 继承 | 重写 | 子类调用父方法 | 静态多态 | 动态多态 | 虚函数 | 纯虚函数 )

    文章目录 的继承 方法的重写 子类中调用父方法 多态 虚函数函数示例 纯虚函数 相关代码 的继承 ---- 1....子类重写方法 : 如果继承的两个父有相同的方法 , 在子类冲又定义了一个相同的方法 , 这就是重写的方法 ; #pragma once using namespace std; //父...调用子类重写的父的方法 child.parent_method(); //调用子类没有重写的父方法 child.parent_method1(); 4....调用虚函数 : //在栈内存中创建一个 Child 对象, 并调用其重写的父的方法 Child child; //多态 //声明 Parent1 父对象 , 为其赋值一个 Child 对象..." << endl; } }; ③ 调用子类中实现的纯虚函数 : //在栈内存中创建一个 Child 对象, 并调用其重写的父的方法 Child child; //纯虚函数测试 parent

    1.5K20

    为什么Java中的成员变量不能被重写?成员变量在Java中能够被重写么?不会重写成员变量,而是隐藏成员变量访问隐藏域的方法

    这篇文章讨论了Java面向对象概念中一个基本的概念--Field Hiding(成员变量隐藏) 成员变量在Java中能够被重写么?...这是为什么呢?...意思就是: 在一个中,子类中的成员变量如果和父中的成员变量同名,那么即使他们类型不一样,只要名字一样。父中的成员变量都会被隐藏。在子类中,父的成员变量不能被简单的用引用来访问。...而是,必须从父的引用获得父被隐藏的成员变量,一般来说,我们不推荐隐藏成员变量,因为这样会使代码变得难以阅读。...其实,简单来说,就是子类不会去重写覆盖父的成员变量,所以成员变量的访问不能像方法一样使用多态去访问。

    3.5K40

    【C++】STL 算法 ① ( STL 算法相关头文件 | 函数对象 仿函数 简介 | 函数调用操作符 | 重写函数调用操作符的 | 函数对象 与 普通函数区别 )

    文章目录 一、STL 算法相关头文件 二、函数对象 / 仿函数 简介 1、函数对象 / 仿函数 博客回顾 2、函数调用操作符 3、函数对象 / 仿函数 - 重写函数调用操作符的 4、函数对象 与 普通函数区别..., 如 : 在 序列 上 执行 加减乘除 操作 ; 头文件 中 只 定义了一些模板 , 这些模板的作用是 声明函数对象 ; STL 标准模板库 提供了 实现算法 的 模板函数..." 仿函数 " 概念 ; 在结构体中的 operator() 就是 重载 函数调用操作符 () 函数 ; 在 C++ 语言中 struct 结构体 与 class 是等同的 , struct 结构体中的成员就是成员...fun(){} 调用 fun 函数 , 其中 函数名 " fun " 后面的 括号 " () " 就是 函数调用操作符 ; fun(); 3、函数对象 / 仿函数 - 重写函数调用操作符的 " 函数对象..." 是 重载 函数调用操作符 " () " 的 , 又称为 " 仿函数 " , 它们是 行为类似函数 的 对象 ; " 函数对象 " 本质是 对象 , 其表现出一个函数的特征 , 通过该对象可以调用函数

    23310

    【C++】泛型编程 ⑧ ( 模板继承语法 | 普通 继承 模板语法 | 模板 继承 模板语法 | 继承模板必须指定具体的类型参数列表 | 继承 模板 必须重写构造函数 )

    一、普通 继承 模板语法 1、普通 继承 模板语法 模板 作为父 , 子类 继承 模板 父 , 需要 指定 具体的类型参数列表 ; 需要 重写 构造函数 , 其中必须调用 模板 具体...// 才能正确分配内存 class Son : public Father { public: // 模板 子类 必须重写构造函数 // 在 子类 构造函数中 , 调用 模板...========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ========== 3、继承 模板 必须重写构造函数 模板 子类 必须重写构造函数 , 在 子类 构造函数中...> { public: // 模板 子类 必须重写构造函数 // 在 子类 构造函数中 , 调用 模板 具体 的构造函数 // 否则会报错 Son(int a =...> { public: // 模板 子类 必须重写构造函数 // 在 子类 构造函数中 , 调用 模板 具体 的构造函数 // 否则会报错 Son(int a =

    1K30

    Override,Overload,Overwrite到底有什么区别?

    Override,Overload,Overwrite的区别【新手可忽略不影响继续学习】   方法的覆盖(Override)是指子类重写从父继承来的一个同名方法(参数、返回值也同),马克-to-win...:此时子类将 清除父方法的影响,实现自身的行为。...顺便说,overload指同名方法,通过不同的参数样式共存, 有时用这个, 有时用那个。参数样式指,不同的参数类型,不同的参数个数,不同的参数顺序,返回值不起作用。...此例子证明,compiler(编译器)一定是按照先子类,后父,先精确匹配,后模糊匹配的顺序。...*/                 System.out.println(obj.f(4, 6.0)); /*如果没有准确匹配, 就模糊匹配(强转一下),马克-to-win:还是按照从子类到父的顺序

    57440

    Python中的属性

    你可以重写内置函数、异常等等。(如果你想了解更多关于重写异常的内容,请阅读这篇更好编程的文章。)你还可以使用私有属性。...在编写时,有时你可能希望隐藏一些实现细节,你可以通过将的某些属性和方法设为私有来实现这一点。但它们永远不是真正的私有。 这种方法对我来说听起来并不自然。...它们并不真正隐藏,因为dir()函数会显示的所有属性,包括公共和私有属性,但后者的名称已经改变。 ---- 感谢阅读本文。我希望在Python的上下文中,隐私不再成为你的问题。...附录1 这个附录解释了为什么在编写Me时,我写成了 self._thoughts += [what] 而不是 self....这就是为什么self._thoughts += what不起作用的原因。如果我们使用它,将会产生以下不希望的效果: >>> marcin.

    17930

    Hooks概览(译)

    可以在事件处理程序或者其它地方调用这个函数。它类似于中的this.setState。不同的是它不能将旧的state和新的state合并在一起。...我们稍后将讨论为什么这种方法可行以及何时有用。 Hook是什么? Hooks是一个“钩住”React state和生命周期特性的函数组件。...Hooks在不起作用——它们让你在没有的情况下使用React。(不建议一夜之间重写现有组件,但如果你愿意,可以开始在新组件中使用 Hooks。)...(我们将在使用Effect Hook章节中更多地讨论这与中的生命周期的比较。) Effects还可以通过返回函数指定如何“清理”它们。...最后,不要错过介绍页,它解释了为什么我们要添加Hooks以及我们如何开始将它们与一起使用而无需重写我们的应用程序。

    1.8K90

    Python学习之魔法方法

    函数,但并不能满足自己需求,我不仅要调用A中的函数,而且还需要执行满足自己的命令(比如打印hello b)。...此时我们就可以在子类中重写函数以满足自己的需求。...重写一般方法和特殊的构造方法:  了解过继承的概念后我们知道,每个都可能拥有一个或者多个超,子类从父那里继承父的一些行为方式。不仅如此,我们也可以重写一些超的方法来自定义继承行为。...再看父中定义的eat函数,启动eat函数需要设置hungry属性。但不解的是,我们已经继承了鸟的基Bird,Bird里也定义了hungry为什么不起作用呢。...使用Super函数 以上方法是3.0以前的写法,新式中将使用super函数解决以上问题。

    49020

    【C++高阶】多态(概念&&虚函数&&抽象

    (基与派生析构函数的名字不同) 如果基的析构函数为虚函数,此时派生析构函数只要定义,无论是否加virtual关键字,都与基的析构函数构成重写,虽然基与派生析构函数名字不同。...因此:C++11提供了override和final两个关键字,可以帮助用户检测是否重写 final:修饰虚函数,表示该虚函数不能再被重写 override:判断一个虚函数是否重写了基函数,如果没有则报错...1、让编译器帮助用户检测是否派生是否对基总的某个虚函数进行重写,如果重写成功,编译通过,否则编译失败,因此其作用发生在编译时。...先将基中的虚表内容拷贝一份到派生虚表中 2. 然后如果派生重写了基中某个虚函数,用派生自己的虚函数覆盖虚表中基的虚函数 3....: a、inline函数可以是虚函数,如果是普通调用,则inline起作用,如果是多态调用,inline不起作用 b、静态成员不可以是虚函数,因为静态成员函数没有this指针,无法访问虚函数表 c、构造函数不可以是虚函数

    15010

    qt中QHBoxLayout或QVBoxLayout布局内控件的动态生成与显示

    ## 1.重写你动态界面中需要存放的控件。  首先呢,最重要的一个实现就是对QLabel进行一次封装,当你对这个进行封装之后,这个QLabel才可以重复的去new。...其实实现QHBoxLayout布局内控件的动态显示的核心函数实现就是**DynamicLayout**。...这块儿的话应该和内部实现有关系,没有时间深入进去看。各位想探究的朋友可以留言讨论。 3....## 1.重写你动态界面中需要存放的控件。  首先呢,最重要的一个实现就是对QLabel进行一次封装,当你对这个进行封装之后,这个QLabel才可以重复的去new。...这块儿的话应该和内部实现有关系,没有时间深入进去看。各位想探究的朋友可以留言讨论。 3.

    97830

    图解jdk1.8新特性(1)

    图解jdk1.8新特性(1) 函数式接口 总结起来就以下几点: 如果一个接口要想成为函数接口(函数接口可以直接用lambda方式简化),则必须有且仅有一个抽象的方法(非default和static) 可以通过注解...@FunctionalInterface注解通过在编译时报错防止其他人破坏函数式接口 接口默认和静态方法 总结如下: jdk1.8之后接口可以实现default方法和static方法,其实就是将接口当做了一个抽象...default方法是非静态,必须通过接口的实现来调用,接口实现中可以对该方法进行重写。...方法引用 总结如下: 方法的引用方式只能用在作为方法的参数,不能用在new创建对象上 方法引用作为参数时,原参数类型必须是函数式接口或者原本是一个lambda表达式 用方法引用new出来的对象,其实质上还是函数式接口的一个...lamba子类,此时多态不起作用

    41710

    我攻克的技术难题:深入解析 JackJSON 底层原理及个性化处理返回值中的默认 null 值

    接下来,我们解决第二个问题:为什么继承WebMvcConfigurationSupport后,生成的@Bean的MappingJackson2HttpMessageConverter不起作用。...在我们的请求进入时,如果我们的配置继承了WebMvcConfigurationSupport,那么它会重写extendMessageConverters方法。...这个方法是用来重写实现的。现在我们知道为什么在继承WebMvcConfigurationSupport后要重写extendMessageConverters了。...问题二:为什么继承WebMvcConfigurationSupport后,生成的@Bean的MappingJackson2HttpMessageConverter不起作用。...让我们进一步分析第二个问题:当继承WebMvcConfigurationSupport后,为什么生成的@Bean的MappingJackson2HttpMessageConverter不起作用

    55621
    领券