学习笔记---overload VS overrid
来源:互联网 发布:软件开发报价方案 编辑:程序博客网 时间:2024/06/06 12:29
方法的重载前提条件:1.同一个类中 2方法名必须相同 3方法的参数列表不同(顺序不同和类型不同)4.不能以返回值作为重载的区分标准
1.
public int getSum(int i,int j){
return i + j;
}
//定义三个int型变量的和
2.
public int getSum(int i,int j,int k){
return i + j + k;
}
3.
//定义两个double型数据的和
public double getSum(double d1,double d2){
return d1 + d2;
}
4.
//定义三个double型数组的和
public void getSum(double d1,double d2,double d3){
System.out.println(d1 + d2 + d3);
}
5.
public void method1(int i,String str){
}
public void method1(String str1,int j){
}
曾看到过一个问题, 当重载的返回值类型可不可以不相同, 我的理解是如果参数列表不相同,那么返回值类型当然可以不相同
如果参数列表的顺序和类型都相同,那么返回值类型不能不相同,粗俗的理解---是因为调用的时候参数类型相同会分不清调用的是有返回值类型还是没有返回值类型。
例如 public void test(int a ,boolean b)
public Test test(int a, boolean b)
调用的时候都是 object .test(a,b);
object.test(a,b);
可变个数的形参的方法:
* 1.格式:对于方法的形参: 数据类型 ... 形参名
* 2.可变个数的形参的方法与同名的方法之间构成重载
* 3.可变个数的形参在调用时,个数从0开始,到无穷多个都可以。
* 4.使用可变多个形参的方法与方法的形参使用数组是一致的。
* 5.若方法中存在可变个数的形参,那么一定要声明在方法形参的最后。
* 6.在一个方法中,最多声明一个可变个数的形参。
//如下四个方法构成重载
//在类中一旦定义了重载的可变个数的形参的方法以后,如下的两个方法可以省略
// public void sayHello(){
// System.out.println("hello world!");
// }
// public void sayHello(String str1){
// System.out.println("hello " + str1);
// }
//可变个数的形参的方法
public void sayHello(String ... args){
for(int i = 0;i < args.length;i++){
System.out.println(args[i] + "$");
}
//System.out.println("=====");
}
public void sayHello(int i,String ... args){
//public void sayHello(String ... args,int i){
System.out.println(i);
for(int j = 0;j < args.length;j++){
System.out.println(args[j] + "$");
}
}
public void sayHello1(String[] args){
for(int i = 0;i < args.length;i++){
System.out.println(args[i]);
}
}
方法的覆盖的前提条件:1.是继承关系,参数列表必须完全与被重写方法相同
2.返回类型必须完全与被重写方法相同
3.访问权限不能比父类中的被重写方法更低。
4.父类成员的方法只能被它的子类重写
5.生命final 方法不能被重写
6.static方法不能被重写
7.重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是重写的方法不能抛出新的异常,或者比
被重写方法更广泛的强制性异常。
- 学习笔记---overload VS overrid
- overrid 和overload
- overload和overrid的区别
- 重载(overload)与重写(overrid)
- c++重载overload和重写overrid的区别
- 方法的重写(overrid)和重载(overload)
- overload VS override
- VS学习笔记 菜单
- VS学习笔记一
- Java中的overload VS override
- 《C++ primer》学习笔记之三十二:function overload resolution概述
- 覆盖VS重载(override VS overload)
- cqp VS bitrate VS crf [学习笔记]
- VS 学习笔记-C++相关
- VS 学习笔记 简单绘图
- VS Code 学习笔记1
- 《C++ primer》学习笔记之三十三:function overload resolution之一寻找候选函数集合
- 《C++ primer》学习笔记之三十四:function overload resolution之二寻找可行函数集合
- RH254测试
- 关于android studio App building 加速
- Spring+SpringMVC+Mybatis(SSM)+Maven构建web项目(demo)步骤
- 机器学习中的正则化
- C语言单链表面试题2
- 学习笔记---overload VS overrid
- Excel VBA高效办公应用-第七章-VBA财务报表分析-Part3 (现金流量表分析)
- thread27
- 使用FreeMaker机制实现高并发优化
- 震惊!做了这题就会了快速幂+扩展欧几里德+bsgs(附扩展bsgs)
- 关于Spring大容器和SpringMVC小容器中注解扫描冲突(影响事物回滚)的解决
- laravel
- 深入理解计算机系统(第三版) 练习2.13
- 外观模式(门面模式)--Facade