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

为什么我新创建的方法没有出现在另一个引用了该方法所属类的类中?

这个问题涉及到面向对象编程中的类和对象的概念,以及方法的可见性和访问权限控制。

当你在一个类中创建一个新的方法,如果该方法没有出现在另一个引用了该方法所属类的类中,可能有以下几个原因:

  1. 可见性限制:方法的可见性可能被设置为私有(private),这意味着该方法只能在所属类的内部访问,其他类无法直接调用。如果你希望其他类也能够调用该方法,可以将可见性设置为公有(public)或者受保护(protected)。
  2. 引用的类没有重新编译:如果你在一个类中创建了新的方法,但是另一个引用了该方法所属类的类没有重新编译,那么新方法就不会在该类中出现。在这种情况下,你需要确保所有引用了该类的类都重新编译,以便更新类的定义。
  3. 继承关系:如果两个类之间存在继承关系,新创建的方法可能只出现在父类中,而没有出现在子类中。这是因为子类继承了父类的方法,但是无法直接访问父类中私有的方法。如果你希望子类也能够调用新创建的方法,可以将方法的可见性设置为公有或者受保护。

总结起来,当你创建一个新的方法时,需要确保方法的可见性符合你的需求,并且所有引用了该方法所属类的类都重新编译,以便更新类的定义。

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

相关·内容

  • 父类中如果没有无参构造方法(也即父类中只给了带参构造方法),子类的构造方法怎么办?

    父类中如果没有无参构造方法(也即父类中只给了带参构造方法),子类的构造方法怎么办? /* 父类中如果没有无参构造方法(也即父类中只给了带参构造方法),子类的构造方法怎么办?   ...法1:子类的构造方法通过 super(...); 去显示调用父类的带参构造方法。   ...法2:子类的构造方法通过 this();/this(...); 调用本类的其他的构造方法,但是子类的其他的构造方法中一定会有一个去访问了父类的带参构造方法。   法3:让父类提供无参构造。...;/super(...); 这三个语句访问子类或父类的构造方法的时候,必须放在第一句语句上。         否则,就可能会对父类数据进行多次初始化。 */ 示例代码如下图所示: ?

    1.5K10

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

    A对象的时候父类会调用子类方法?...但是:创建B对象父类会调用父类的方法? 答案: 当子类被加载到内存方法区后,会继续加载父类到内存中。...如果,子类重写了父类的方法,子类的方法引用会指向子类的方法,否则子类的方法引用会指向父类的方法引用。 如果子类重载了父类方法,则子类重载方法引用还指向子类方法。...如果子类方法没有重写也没有重载父类方法,则方法引用会指向父类方法。 当子类对象创建时,会先行调用父类的构造方法(构造方法也是方法),虚拟机会在子类方法区寻找该方法并运行。...其结果是当编译的时候,父类构造方法调用的方法的参数已经强制转换为符合父类方法的参数了。 上边代码在编译前已经转换为下面这个样子的了。

    6.2K10

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

    Paste_Image.png 按照我们已有的多态的概念,第二个应该是输出sub才对,但却输出了super。这是为什么呢?...意思就是: 在一个类中,子类中的成员变量如果和父类中的成员变量同名,那么即使他们类型不一样,只要名字一样。父类中的成员变量都会被隐藏。在子类中,父类的成员变量不能被简单的用引用来访问。...而是,必须从父类的引用获得父类被隐藏的成员变量,一般来说,我们不推荐隐藏成员变量,因为这样会使代码变得难以阅读。...其实,简单来说,就是子类不会去重写覆盖父类的成员变量,所以成员变量的访问不能像方法一样使用多态去访问。...访问隐藏域的方法 就是使用父类的引用类型,那么就可以访问到隐藏域,就像我们例子中的代码 就是使用类型转换System.out.println(((Super)c1).s); 翻译自http://www.programcreek.com

    3.5K40

    Java中this关键字底层原理

    简单的如何使用,这里就跳过了,本文主要是分析原理,这里需要有点点jvm的知识,不过我也会介绍的。  下面进入正题:当我们在方法内部使用this调用属性、方法的时候,你有没有考过this是怎么来的?...其中7-13行是构造方法的代码区域;第17-19行描述的是Java源码中定义的局部变量与该方法被执行时栈帧中的局部变量表中的变量的对应关系。...2. this引用变量的数据类型是this所在方法的所属类。即编码时,this出现在哪个类中,this的数据类型就是这个类(回头看看17-19行,默认的无参构造方法这个唯一的局部变量就是this!...static的情况:为什么静态的就不能使用this呢,其实这是跟类加载的机制有关,我们知道静态方法是可以直接通过类名直接调用的,根本没有实例化一个对象,因为无论静态方法和静态代码块在对象实例化之前的的类加载的时候就已经执行了...所以,我们仍然可以按照第一条表述来理解,即,构造方法是由新创建的对象来调用的,构造方法中的this,仍然指代的是正在调用该构造方法的对象。

    55830

    第1章-Activity的生命周期和启动模式(上)

    因为Activity启动需要任务栈,而用Standard模式去启动Activity,默认会进入启动它的Activity所属的任务栈中,而非Activity类型的Context并没有所谓的任务栈....ABC—启动C->ABC SingleTop 栈顶复用模式,如果新的Activity已位于栈顶,那么不会重新创建Activity,而是回调onNewIntent方法 onNewIntent-->onResume...ABC—启动C→ ABC SingleTask 栈内复用模式,只要占中存在都不会重新创建,并且也是回调onNewIntent 另外需要注意的是,该模式拥有clearTop 的效果,会把位于它顶上的Activity...Activity不会出现在历史Activity列表中,相当于android:exludeFromRecents="true" 任务栈 TaskAffinity(任务相关性),标识了一个Activity...预告下一篇应该是 IntentFilter的匹配规则,为什么不放一起呢? 一来是字数太多,二来是我还没打完... EJ系列的坑还没填完,我又开了一个坑... 我都想打死我自己 关注我,看我把坑填完!

    44140

    小米二面 • 送分题 • 讲讲你对反射的理解

    抛砖引玉:为什么要使用反射 前文我们说过,接口的使用提高了代码的可维护性和可扩展性,并且降低了代码的耦合度。...需要注意的是,newInstance方法调用默认的构造函数(无参构造函数)初始化新创建的对象。如果这个类没有默认的构造函数, 就会抛出一个异常。...,所以才和反射机制有关) 为什么说动态代理使用了反射机制,下篇文章会给出详细解释。...那么反射中的这个 “反” 我们就可以理解为根据对象找到对象所属的类(对象的出处) 通过反射,也就是调用了 getClass() 方法后,我们就获得了这个类类对应的 Class 对象,看到了这个类的结构,...输出了类对象所属的类的完整名称,即找到了对象的出处。

    61120

    读懂框架设计的灵魂 — Java 反射机制

    抛砖引玉:为什么要使用反射 前文我们说过,接口的使用提高了代码的可维护性和可扩展性,并且降低了代码的耦合度。...在程序运行期间,JVM 始终为所有的对象维护一个被称为「运行时的类型标识」,这个信息跟踪着每个对象所属的类的完整结构信息,包括包名、类名、实现的接口、拥有的方法和字段等。...对象所属的类的完整名称,即找到了对象的出处。...需要注意的是,「newInstance方法调用默认的构造函数(无参构造函数)初始化新创建的对象。如果这个类没有默认的构造函数, 就会抛出一个异常」。 ?...,所以才和反射机制有关) ❝为什么说动态代理使用了反射机制,下篇文章会给出详细解释。

    82490

    一文读懂字符串String

    为什么说字符串是不可变的 在工作中,我们经常要在代码中对字符串进行赋值和改变它的值,但是,为什么我们说字符串是不可变的呢?...final修饰,表明value的引⽤是不会被改变的,⽽value只会在String的构造函数中被初始化,⽽且 并没有其他⽅法可以修改value数组中的值,保证了value的引⽤和值都不会发⽣变化。...而且,String类的所有方法都没有改变字符串本身的值,都是返回了一个新的对象。..."abc"这个字符串对象的引⽤, 如果没有,则先在堆中创建⼀个"abc"字符串对象,并将引⽤添加到字符串常量池,随后将引⽤赋给str3。...它可以将一个数组的部分或全部元素复制到另一个数组中。

    53220

    this关键字与super关键字详解

    ,因为输出语句中的name变量在eat方法这片空间也存在,如果存在它就只会在eat方法这片空间去找,如果这片空间没有它才会去到堆内存中去找 3.定义: (1)this关键字代表了所属函数的调用者对象,this...关键字要注意的事项: (1)存在同名的成员变量与局部变量时,在方法的内部访问的是局部变量(Java采取的是“就近原则”的机制访问的); (2)如果在一个方法中访问了一个变量,该变量只存在成员变量的情况下...(1) 如果在子类的构造方法上没有指定调用父类的构造方法,那么java编译器会在子类的构造方法内加上super()语句。...(2) super关键字调用父类的构造函数时,该语句必须要是子类构造函数中的第一个语句。 (3) super与this关键字不能同时出现在同一个构造函数中调用其他的构造函数。...3. super关键字调用父类构造方法要注意的事项: 注意:是两个关键字不能同时出现在同一个构造函数中去调用其他的构造函数,里面还是可以写this.num = num。

    72210

    .NETORM框架设计(利用抽象、多态实现无反射的绿色环保ORM框架)

    在后面的文章中我将陆续写下我在建设基础框架中的一些实践检验,里面可能包括对UI层的封装、基础控件的封装等等。我就废话少扯了,进入主题。 这篇文章的重点是无反射的ORM框架,为什么会有这样的想法?...我为什么要说“思维实现约束”,这也是我们程序员的一些通病之一吧,都喜欢用复杂的技术。不管三七二十一用了心里舒服。这是好事,为了练习技术可以理解。没有这份好奇心这份激情我们也很难走到专家的位置。...目的之四:设置实体属性的值 通过实例化泛型对象,然后反射对象的属性通过SetValue方法设置属性的值。 简结:这几点是最常用的,可能还包括其他复杂的功能,这里我就不涉及了。...在ORM中我们的泛型方法都是约束实体为BaseEntityObject类型,然后所有的信息包括主键、字段、数据类型都能够通过多态的方式获取到。...当然该篇文章只是简单的讲解了一下核心的内容,也算是抛砖引玉吧。希望对大家来说有点启发作用。[王清培版权所有,转载请给出署名]

    77020

    js常见错误总结

    初始化作用域链 形参赋值 变量提升 首先会在当前上下文中,创建一个对象(这个对象就是当前类的实例) – 浏览器默认多做的事情 让当前上下文中的this指向新创建的对象 – 浏览器默认多做的事情 代码执行...:_proto_(原型链),属性值是当前实例(对象)所属类的prototype原型 原型链查找机制 首先找自己的私有属性,私有属性有,调取的就是私有属性 如果没有,默认基于__proto__原型链属性,...找所属类prototype原型上的公共属性和方法 如果还没有,则基于原型prototype中的__proto__继续向上找,一直找到Object.prototype为止 寄生组合式继承 call继承 +...) instanceof 当前类的原型只要出现在了实例的原型链上就返回true 本身不能完成数据类型检测,只是利用它的特征(检测某个实例是否属于这个类)来完成数据检测 constructor 本身不能完成数据类型检测...toString是返回当前实例所属类的信息(检测数据类型的),其余的都是转换字符串的 对象.toString,toString方法中的this是对象实例,也就是检测他的数据类型,也就是this是谁,就是检测谁的数据类型

    1.9K40

    第 18 章 用于大型程序的工具

    在写本篇博客时,我尝试使用了 PC版的讯飞输入法,直接可以将大段的文字通过语音的方式码进来,写作效率唰唰的提高。另外,有些书中的代码也比较长,敲起来也比较费时费力。...该 catch可能是同一个函数中的局部 catch,也可能位于直接或间接的用了发生异常的函数的另一个函数中。控制权从一处转移到另一处,这有两个重要的含义: 沿着调用链的函数可能会提早退出。...因为 f接受一个类类型的实参,而且 f在 C所属的命名空间进行了隐式的声明,所以 f能被找到。相反,因为 f2没有形参,所以它无法被找到。...// 错误: A::f2没有被声明 } 与实参相关的查找,会在每个实参类(以及实参类的基类)所属的命名空间中搜寻候选函数。...一个 using声明将重载该声明语句所属作用域中已有的其他同名函数。如果 using声明出现在局部作用域中,则引入的名字将隐藏外层作用域的相关声明。

    93020

    深入学习Activity的生命周期和启动模式

    1.典型情况下生命周期 onStart():Activity已经可见了,但是还没有出现在前台,无法和用户进行交互。...设置了Activity的属性configChanges,屏幕切换时如果Activity没有重新创建,则不会调用onSavedInstanceState和onRestoreInstanceState方法,...这是因为standard模式的Activity默认会进入启动它的Activity所属的任务栈中,但由于非Activity类型的Context并没有所谓的任务栈,所以会报这个错误。...,第二行代表当前类的全路径。...如果调出的Activity只是一个功能片段,并没有实际的意义,也没有必要出现在长按Home键调出最近使用过的程序类表中,那么使用FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS,所以历史

    72910
    领券