什么叫方法签名 Java
方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成。
注意,方法签名不包括方法的返回类型。不包括返回值和访问修饰符。
常见的问题应用:重载和重写。
public class A{protected int method (int a, int b) {return 0;}}
class B extends A{private int method(int a,long b){return 0;}
}
重写要求:
前提是继承,两个方法的方法签名相同。至于修饰符,范围相同或者比父类的范围大即可。
所以 B的method方法根本不是重写的A 的method方法,而是重载。重载要求方法名相同,参数和返回值随便改。
所以,参数不一定改成long,随便什么都是重载。
要是重写的话,也不是必须加@override,写@override,这个表示编辑器会给你去父类检查重写的对不对,不写就自己检查呗。
重写是覆盖,就是子类的替换了父类的,正常用方法,调的是子类的,所以重写完还是一个方法
重载是写多个同名方法,但可以给的参数不同,功能类似,所以正常调哪个方法,要看参数怎么写的,跟继承无关,区别是重载后变成多个方法。
虽然简单,但是我确实不知道有方法签名这一说,现在既然知道了,就简单的做个笔记咯。还望众喷子们冷静的路过。
关于重写和重载,学过Java的都可以说几句,但是说的到底对不对,那还真不好说,最好的办法就是亲自测试一下,用代码说话。
下面是我关于重写的测试,@override,使用这个注解,编辑器会自动帮你检查你的重写是不是OK的。
我做如下测试:
1.关于修饰符的测试
父类:如果是private,那么子类就不存在重写,只是新建了个方法。
但是要是protected的话,子类就可以重写。@override是可以OK的。子类是protected或者public。经测试private类型是错误的。直接报错。
验证上面的修饰符范围相同或者比父类大即可。
这也间接说明,继承的关系,private是不能被继承的,所以父类private类型的属性是不能到子类去的,也就无从扩展,也就谈不上重写啦。
2.关于返回类型的测试
在修饰符条件OK的情况下,来修改返回类型,
发现如果可继承的要重写的方法要是返回类型不同,编辑器也是会报错的。说是重写的两个方法的返回类型冲突。不相容的,矛盾的返回类型。
验证,重写的方法的返回类型的关系。
不信的可以自己测试下。
什么叫方法签名 Java相关推荐
- Java中方法签名signature、方法重载以及“两同两小一大”的方法覆盖(方法重写)总结
1. 方法 1.1 方法 实现了某一功能,代码可以复用 1.2 方法签名 java中每个方法都有一个签名,包含方法名和参数列表(类型.个数以及顺序),只要其中一个不同,方法的签名不同,也就是属于不同的 ...
- java 签名 apk mac_java 方法签名
public void test(){}()V public void test1(int i){} (I)V public int test2(){ return 1;}( ...
- Thinking in Java方法签名
方法名和参数(即,方法签名)唯一标识某个方法:如, public void add(int a,int b){ } //这两个方法的方法签名一样,是不能在同一.java里的,编译通不过 public ...
- 写出一下Java方法对应的签名_Java中的方法签名是否包含其返回类型?
Java类/接口中的方法签名是否包括其返回类型? 例: Java是否知道这两种方法之间的区别: public class Foo { public int myMethod(int param) { ...
- java字段描述符_Java 的方法签名与字段类型表示-[Ljava.lang.String;
我们什么时候会接触到 Java 的方法签名呢?在进行 JNI 调用时,还有在看方法重载时.重载的方法是有不同的方法签名的,而是不区分返回值,而实际方法签名还揉入了返回值类型的,还有就是 javap - ...
- NDK学习笔记:JNI调用Java层方法创建Native的AudioTrack播放PCM(方法签名,CallXXXMethod)
NDK学习笔记:JNI调用Java层方法创建Native的AudioTrack播放PCM 题目有点复杂,不过确实就是那么回事.这章想记录的内容比较多,先列出来: native static 与 nat ...
- java 函数签名_Java方法签名和接口
我们知道方法签名只包括方法名称和参数列表,但不包括方法返回类型.那么为什么我为以下代码收到编译器错误,因为java不区分具有相同签名的方法. public class InterfaceTest im ...
- JAVA中 什么是方法签名?
what is method signature in java? // 在 Java 中什么是方法签名? 书中是这么说的: Definition: Two of the components of ...
- Java方法签名的定义
In Java, a method signature is part of the method declaration. It's the combination of the method na ...
最新文章
- stylegan2 示例命令fused_bias_act.cu环境配置异常(无法打开包括文件: “tensorflow/core/framework/op.h”
- android对OnTouchListener、OnClickListener等事件响应的研究
- python的构建工具setup.py
- CYQ.Data 轻量数据层之路 V2.0 震撼惊世 支持多数据库/内置Aop(二十五)
- Android socket 编程 实现消息推送(一)
- java 轻量级同步volatile关键字简介与可见性有序性与synchronized区别 多线程中篇(十二)...
- 龙头地位无可撼动!腾讯占全球游戏市场15% 连续6年登营收榜首
- unity ab包加载_Unity资源管理和打包
- 【Oracle】恢复重做日志组
- 卡耐基梅隆大学一些关于人机交互中未来接口人研究
- Jetson nano jetpack4.5安装torch1.8.0 yolov5(遇到到报错和解决办法)
- 学好mysql数据库能找到什么工作_MySQL数据库学习路线汇总整理全集(附详细的学习路线介绍图)...
- 【vbers】ibv_reg_mr|RDMA
- 第一次在GitHub上提交代码
- 2020李宏毅学习笔记——8. Convolution Netural Network
- CALayer的简单使用
- Ubuntu wine QQ 微信乱码
- SLAM学习——李群与李代数
- CSS线性渐变和径向渐变详解
- 祝妈妈生日快乐的html的代码,祝妈妈生日快乐的朋友圈说说 祝妈妈生日快乐的说说句子...