Java 方法签名

方法的名字和參数列表成为方法的签名。注意,方法签名不包含方法的返回类型。本文通过測试理解參数列表的真正含义,以及在继承中重写方法时方法的返回值与父类中方法的返回值应该有如何的关系。

这里有三个辅助类:

package methodsign;

public class Ancestor {

}
package methodsign;

public class Parent extends Ancestor {

}
package methodsign;

public class Other {

}

以下是測试类。測试结果在凝视中说明:

package methodsign;
/**
 * 測试方法签名
 * 方法的名字和參数列表称为方法的签名
 * @author yuncong
 *
 */
public class Person {
	private String name;
	private String gender;
	private int age;

	public Person() {
		// TODO Auto-generated constructor stub
	}

	/**
	 * 由构造器1和构造器2不可同一时候存在可知。方法签名的參数列表详细是指參数的类型列表。
	 * 由构造器1和构造器3能够同一时候存在可知,方法签名的參数类型列表还与參数类型的顺序有关,也就是说,
	 * 即使方法括号里的參数个数和类型全然一样,仅仅要參数类型的顺序不同,也是不同的參数类型列表
	 */
	// 构造器1
	public Person(String name, String gender, int age) {
		super();
		this.name = name;
		this.gender = gender;
		this.age = age;
	}

	// 构造器2
	public Person(String gender, String name, int age) {
		super();
		this.name = name;
		this.gender = gender;
		this.age = age;
	}

	// 构造器3
	public Person(String name, int age, String gender) {
		super();
		this.name = name;
		this.age = age;
		this.gender = gender;
	}

	public Ancestor getAncestor() {
		return new Ancestor();
	}
}
package methodsign;

public class Student extends Person {
	/**
	 * 方法1是正确的,方法2是错误的,说明在子类中重写父类的方法。方法的返回值
	 * 必须与父类中该方法的返回值一样或者是父类中该方法返回值的子类
	 */
	// 方法1
	public Parent getAncestor() {
		return new Parent();
	}

	// 方法2
	public Other getAncestor() {
		return new Other();
	}
}
时间: 2024-10-11 16:39:33

Java 方法签名的相关文章

java方法签名

方法的名字和参数列表称为方法的签名. 方法名 (参数列表(方法参数的顺序和类型)) 如下:方法中,方法名字:quaryAll.参数列表:( String  a , int  b ) public  int  quaryAll( String a , int b ) { return 0; } 方法的返回类型不是方法签名的一部分. 返回类型 : int ;

C调用java方法签名

1.AS2.0 D:\androidMyWork\SmartCam\app\build\intermediates\classes\debug>javap -s com.admin.smartcam.javatoc.JavaToC Compiled from "JavaToC.java" public class com.admin.smartcam.javatoc.JavaToC { public com.admin.smartcam.javatoc.JavaToC(); de

Android C代码回调java方法

本文将讲述下列三种C代码回调java方法 1.c代码回调java空方法 2.c代码回调java int类型参数方法 3.c代码回调javaString类型参数方法 方法都差不多,先看c代码回调java空方法,其他两种类似: ① 找到字节码对象 //jclass (*FindClass)(JNIEnv*, const char*); //第二个参数 要回调的java方法所在的类的路径 "com/itheima/callbackjava/JNI" ② 通过字节码对象找到方法对象 //jme

jni使用javap查看java类方法签名

在Jni开发中,需要回调给java层数据,因此使用java的方法签名是必不可少的. 快速定位java方法签名的方式: java方法签名由(函数参数列表)返回值组成. cmd运行:javap -s 字节码对应的类,显示方法签名: 快速定位自定义的类的方法签名: 找到编译生成的class字节码文件目录, javap -s xx.xx.x.xxxxx.class //.class去掉

Android JNI之调用JAVA方法的返回值签名

从http://blog.csdn.net/lonelyroamer/article/details/7932787截取的 如何签名: 下面看看Sign签名如何写,来表示要取得的属性或方法的类型. 1.普通类型签名 2.引用类型签名 object     L开头,然后以/ 分隔包的完整类型,后面再加:   比如说String    签名就是   Ljava/lang/String; Array      以[ 开头,在加上数组元素类型的签名            比如int[]   签名就是[I

如何在android平台上使用js直接调用Java方法[转]

转载自:http://www.cocos.com/docs/html5/v3/reflection/zh.html #如何在android平台上使用js直接调用Java方法 在cocos2d-js 3.0beta中加入了一个新特性,在android平台上我们可以通过反射直接在js中调用java的静态方法.它的使用方法很简单: var o = jsb.reflection.callStaticMethod(className, methodName, methodSignature, parame

jni中调用java方法获取当前apk的签名文件md5值

相应的java方法: void getsign(Context context) throws Exception { PackageInfo localPackageInfo = context.getPackageManager() .getPackageInfo(context.getPackageName(), 64); StringBuilder localStringBuilder = new StringBuilder(); Signature[] arrayOfSignature

【cocos2d-js官方文档】二十四、如何在android平台上使用js直接调用Java方法

在cocos2d-js 3.0beta中加入了一个新特性,在android平台上我们可以通过反射直接在js中调用java的静态方法.它的使用方法很简单: var o = jsb.reflection.callStaticMethod(className, methodName, methodSignature, parameters...) 在callStaticMethod方法中,我们通过传入Java的类名,方法名,方法签名,参数就可以直接调用Java的静态方法,并且可以获得Java方法的返回

安卓实战开发之JNI入门及高效的配置(android studio一键生成.h,so及方法签名)

前言 以前也讲过NDK开发,但是开始是抱着好玩的感觉去开始的,然后呢会helloWord就觉得大大的满足,现在静下来想这NDK开发到底是干什么呢? NDK开发,其实是为了项目需要调用底层的一些C/C++的一些东西:另外就是为了效率更加高效些但是在java与C相互调用时平白又增大了开销(其实效率不见得有所提高),然后呢,基于安全性的考虑也是为了防止代码被反编译我们为了安全起见,使用C语言来编写这些重要的部分来增大系统的安全性,最后呢生成so库便于给人提供方便. 好了,我们来看一下qq的结构,我们就