Java 方法重载 方法重写
方法重载规则
- 参数个数不同
- 参数个数相同,但参数列表中对应的某个参数的类型不一样
- 方法的返回类型和参数名称不参与重载
- "编译期绑定",,因为未产生对象,只看参数、引用类型绑定方法
public void f(String s,int i) {}
public void f(int i,String s) {} //重载是正确的,这个点很难理解,大概是符合第二条规则
public void f(String string ,int i,int j) {} //第一条规则
// public int f(String s ,int i){}//重载错误,返回值不参与重载判定
// public void f(String s1 ,int i1){}//重载错误,参数名不参与重载判定
基本数据类型的重载
- char变量如果没有char参数的方法,会进入int参数方法
示例代码
public class Override {
//基本数据类型的重载
void g(int ch) {System.out.println("char to int");}
public static void main(String[] args) {
Override override= new Override();
char ch= '5';
override.g(ch);
}
}
结果:char to int
- 不存在byte,short常量,所有的不是long的整型数都是int,所以在进行基本数据重载时,要注意这点
示例代码
public class Override {
//基本数据类型的重载
void f(char ch) {System.out.println("char");}
void f(int i) {System.out.println("int");}
void f(byte bt) {System.out.println("byte");}
void f(short st) {System.out.println("short");}
void f(long l) {System.out.println("long");}
public static void main(String[] args) {
Override override= new Override();
override.f(5);
}
}
结果:int
方法重写(两同两小一大原则)
方法名相同
参数类型相同
子类返回类型小于等于父类方法返回类型(基本数据类型必须等于,引用数据类型可以小于,Java中子类小于父类)
子类抛出异常小于等于父类方法抛出异常
子类访问权限大于等于父类方法访问权限
“运行期绑定”,因为产生了对象,所以看对象类型绑定方法
class Father{
void show();
Father talk(){
return null;
}
}
class Son extends Father{
void show(); //正确,完全相同
void show(){ //正确,子类重写父类方法
super.show();
System.out.print("show");
}
Son talk(){
return null;
}//正确,返回数据类型小于父类
/* 错误
* int show();类型错误,基本数据类型必须父子相同
* Object talk(){
return null;
}; 类型错误,引用数据类型必须父类大于等于子类
*/
}
Java 方法重载 方法重写的更多相关文章
- java基础疑难点总结之成员变量的继承,方法重载与重写的区别,多态与动态绑定
1.成员变量的继承 1.1要点 子类用extends关键字继承父类.子类中可以提供新的方法覆盖父类中的方法.子类中的方法不能直接访问父类中的私有域,子类可以用super关键字调用父类中的方法.在子类中 ...
- java方法重载和重写
1.java的方法重载和重写,表示两种不同的类型.this关键字,出现在类的构造方法中,代表使用该构造方法所创建的对象.,this可以出现在实例方法中核构造方法中.但是不能出现在类方法中.实例方法只能 ...
- Java:重载和重写
Java:重载和重写 对 Java 中的 重载和重写 这个概念,做一个微不足道的小小小小结 重载 重载:编译时多态,同一个类中的同名的方法,参数列表不同,与返回值无关. 有以下几点: 方法名必须相同: ...
- Java类方法重载与重写
目录 - 方法重载 - 方法重写 @(Java类方法重载与重写) - 方法重载 1.方法名相同 2.参数列表不同 public void person(double height,double wei ...
- 【知了堂学习笔记】java 方法重载与重写的归纳
方法重载:Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同.调用方法时通过传递给它们的不同个数和类型的参数来决定 ...
- java中的方法——重载yu重写(转)
重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. ...
- java——方法重载与重写、构造方法、this关键字、static关键字、strictfp关键字、类的导入
Java SE5新增加@Override注解,它并不是关键字,但是可以把它当作关键字使用.当你想要覆写(重写)某个方法时,可以选择添加这个注解,在你不留心重载而并非覆写了该方法时,编译器就会生成一条错 ...
- 《Java基础知识》Java方法重载和重写
重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为. 也就是说子类 ...
- java中的方法重载与重写以及方法修饰符
1. 方法重载Overloading , 是在一个类中,有多个方法,这些方法的名字相同,但是具有不同的参数列表,和返回值 重载的时候,方法名要一样,但是参数类型和参数个数不一样,返回值类型可以相同,也 ...
随机推荐
- 认识flask框架-2
1.json:基于键值对的字符串,轻量级的数据交互格式,用来传输数据 2.json模块 dumps:把字典转化成json字符串. loads:把json字符串转成字典. dump.load操作的是文件 ...
- Angular 学习笔记 Material
以后都不会写 0 到 1 的学习记入了,因为官网已经写得很好了. 这里只写一些遇到的坑或则概念和需要注意的事情. Material Table 1. ng-content 无法传递 CdkColumn ...
- linux重启后进入了救援模式,无法远程登录
卸载删除了某个文件系统分区的逻辑卷,但是没有修改fstab文件,导致系统重启异常,此时已经无法远程连接了,只能本地登录到救援模式修改
- Hibernate二级缓存 --Hibernate框架
Hibernate本身只提供了二级缓存的规范,但并未实现,所以需要第三方缓存插件的支持.常用的二级缓存第三方插件有:EHCache.Memcached.OSCache.SwarmCache.JBoss ...
- CentOS上安装seafile
一.安装python2.7.14(CentOS7上python默认版本是Python 2.7.5 ,不需要安装)1.安装依赖包[root@web01 ~]# yum -y install zlib z ...
- DedecmsV5.7本地上传缩略图无法自动添加水印的解决方法
问题:dedecms后台 系统->图片水印设置 图片水印设置有开启了,但是本地上传缩略图无法自动添加水印 网上有很多资料,所以记录一下 1.打开dede(实际项目后台文件夹)/archives_ ...
- dsu on tree练习
dsu on tree主要是处理一些有根树子树询问的操作, 作用与点分治和线段树合并类似. 一般无根树询问所有树链信息的直接就点分了, 有根树的话一般用线段树合并或dsu on tree, 线段树合并 ...
- 384. Shuffle an Array(java,数组全排列,然后随机取)
题目: Shuffle a set of numbers without duplicates. 分析: 对一组不包含重复元素的数组进行随机重排,reset方法返回最原始的数组,shuffle方法随机 ...
- hadoopMR自定义输入类型
hadoop中的输入输出数据类型: BooleanWritable:标准布尔型数值 ByteWritable:单字节数值 DoubleWritable:双字节数值 FloatWritable:浮点数 ...
- 解决spring-boot启动异常Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean
第一种: 需要在主类头加上 @EnableAutoConfiguration 第二种: pom文件是否加了 <dependency> <groupId>org.mybatis ...