在java中怎样使方法调用同一个类中的方法是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java中怎样使方法调用同一个类中的方法是啥?相关的知识,希望对你有一定的参考价值。
1、如果一个类中只有一个名称为a的方法,那么我们可以直接调用即可,如下图所示
2、以下是我们直接使用传统的方式直接调用这个类中的a方法。
3、但是如果一个类中,拥有多个方法名一样的方法,那么我们使用反射机制,要如何去调用这些方法呢,如下图所示,一个类中有多个方法名相同的方法。
4、可能已经注意到了,虽然他们具有相同的方法名,但是他们却有着一些差异
5、他们要求传入的参数类型及其数量都是不一样的。通过先查看一遍不同方法,然后即可知道,我们要调用的具体是哪个方法,最后直接使用反射机制进行调用。
6、使用反射机制的类加载器,去加载类。具体如下图所示、
7、接下来,对类进行实例化,实例化使用到的方法为下图所示:
8、实例化后,我们即可开始指定方法,我们使用"getDeclaredMethod()"来选择不同的方法。
9、第一个参数表示的是方法名,指定要去指定这个方法,而第二个参数指定的是方法的形参。
10、我们这里指定的是形参,如果没有参数,则直接写成null即可。
11、接下来,我们使用invoke,调用指定类中的这个方法,第一个参数是实例化好的类,第一个参数是实际需要传入的参数,而不是形参。
12.通过上图的方法,找到下图所示的方法,并调用它。
参考技术A class Aint te()
class B
A a=new A();//在公共类里新建类A的对象也行,反正调用其他类的方法要通过那个类的实例对象来调用
a.te();//通过A类的实例对象a调用方法te()
在 Java 中,如何从派生类中的覆盖方法调用基类的方法?
【中文标题】在 Java 中,如何从派生类中的覆盖方法调用基类的方法?【英文标题】:In Java, how do I call a base class's method from the overriding method in a derived class? 【发布时间】:2010-09-21 02:25:46 【问题描述】:我有两个Java类:B,它扩展了另一个类A,如下:
class A
public void myMethod() /* ... */
class B extends A
public void myMethod() /* Another code */
我想从B.myMethod()
拨打A.myMethod()
。我来自C++ world,我不知道如何用Java 做这个基本的事情。
【问题讨论】:
【参考方案1】:您要查找的关键字是super
。例如,请参阅this guide。
【讨论】:
看起来在 C++ 中你可以调用一个特定的祖先方法,但不是 java,你可以将它向上传递...【参考方案2】:只需使用 super 调用它。
public void myMethod()
// B stuff
super.myMethod();
// B stuff
【讨论】:
【参考方案3】:答案如下:
super.Mymethod();
super(); // calls base class Superclass constructor.
super(parameter list); // calls base class parameterized constructor.
super.method(); // calls base class method.
【讨论】:
【参考方案4】:super.MyMethod()
应在class B
的MyMethod()
内调用。所以应该是这样的
class A
public void myMethod() /* ... */
class B extends A
public void myMethod()
super.MyMethod();
/* Another code */
【讨论】:
【参考方案5】:调用 super.myMethod();
【讨论】:
【参考方案6】:我很确定您可以使用 Java 反射机制来做到这一点。它不像使用 super 那样简单,但它会给你更多的力量。
class A
public void myMethod()
/* ... */
class B extends A
public void myMethod()
super.myMethod(); // calling parent method
【讨论】:
这不会在代码中显示任何 java 反射,并且与其他代码相同。还有更多的答案吗?【参考方案7】:使用super 关键字。
【讨论】:
【参考方案8】:super.baseMethod(params);
使用 super 关键字调用基本方法并传递相应的参数。
【讨论】:
【参考方案9】:class test
void message()
System.out.println("super class");
class demo extends test
int z;
demo(int y)
super.message();
z=y;
System.out.println("re:"+z);
class free
public static void main(String ar[])
demo d=new demo(6);
【讨论】:
【参考方案10】:看,这里你重写了基类的方法之一,因此如果你想从继承的类中调用基类方法,那么你必须使用 super 关键字在继承类的同一个方法中。
【讨论】:
【参考方案11】:如果你使用这些方法进行初始化,那么使用类 A 的构造函数并在类 B 的构造函数中传递 super 关键字。
或者如果你想从子类方法调用超类的方法,那么你必须在子类方法中使用 super 关键字,例如: super.myMethod();
【讨论】:
【参考方案12】:// Using super keyword access parent class variable
class test
int is,xs;
test(int i,int x)
is=i;
xs=x;
System.out.println("super class:");
class demo extends test
int z;
demo(int i,int x,int y)
super(i,x);
z=y;
System.out.println("re:"+is);
System.out.println("re:"+xs);
System.out.println("re:"+z);
class free
public static void main(String ar[])
demo d=new demo(4,5,6);
【讨论】:
以上是关于在java中怎样使方法调用同一个类中的方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章