java之重载和重写

方法重载:
方法重载是指方法名和方法的返回类型都相同,但方法参数不一样.

参数不一样体现在参数个数、参数类型以及参数类型的顺序 不一样(三条满足一条即不一样).

举个例子:
Test.java

public class Test
{
public static void main(String[] args){
Test ts = new Test() ;
System.out.println(ts.ss(“s1”,“s2”)) ;
System.out.println(ts.ss(“s1”)) ;
}
public String ss(String s1,String s2){
return s1+s2 ;
}
public String ss(String s1){
return s1 ;
}
}

其中ss就形成了方法重载.
此程序可运行!

方法重写:

方法重写是相对继承而言的.

重写的方法名.返回类型,参数类型和参数个数都要求和父类中的一样.这是重载和重写形式上的区别.

当类继承某个类的时候 .一些属性和方法也被继承过来了.这样就可以用子类对象调用父类中的某个方法.但如果你对父类中的方法不满意,便可以对父类中的方法进行重写.实现你想要的功能!!!

在调用重载方法时,如果提供精确匹配的方法就做精确匹配,如果没有提供精确匹配的方法就做相对精确匹配。如果多个相同程度的相对精确匹配的方法就匹配不到,就会报错。(最好提供精确匹配),有如下代码部分验证:

package cn.tedu.method;

public class MethodDemo2 {
//在java值唯一确定方法–发签名(由方法名和参数列表共同决定)
public static void main(String[] args) {
//充值方法的调用
//当提供精确匹配方法,就做精确匹配
//提供多个相同程度的相对精确匹配的方法局匹配不到了
System.out.println(sum(1,2));
}

//求和方法
//sum(int,int)
public static int sum(int m,int n){
    System.out.println("int int");
    return m+n;
}
//sum(double,int)
public static double sum(double m,int n) {
    System.out.println("double int");
    return m+n;
}
sum(int,double)
public static double sum(int m,double n){
    System.out.println("double double");
    return m+n;
}

}
方法传值
1、当实参为基本数据类型时传递的是拷贝值
2、当实参为引用数据类型时传递的是地址值的拷贝
如果拷贝的地址值找到原堆内存就有可能有影响
如果拷贝的地址值没有找到原堆内存做任何操作都不会有影响

有参有返回值
有参无返回值
无参有返回值
无参无返回值 具体看代码部分:
package cn.tedu.method;

public class MethodDemo3 {
//java值的方法被调用都是加载到栈中执行
public static void main(String[] args) {
//int i=1;
//实参—实际传入的值
//当实参类型是基本数据类型时传递的是值的拷贝
//m(i);
int[] arr={1,2,3};
//数组元素是基本数据类型传递的是值的拷贝
//m(arr[0]);

    //当实参类型是引用数据类型时传递的是地址值的拷贝
    mn(arr);
    System.out.println(arr[0]);
}
//形参---接受实参的值
public static void m(int i){//接受的是拷贝值
    i+=2;//操作拷贝值时不会影响原来的值

}
public static void n(int[] arr){//接受的是拷贝的地址值
    arr[0]=9;//根据拷贝的地址值找到堆内存改变元素值
}
public static void mn(int[] arr){//接受的是拷贝的地址值
    arr=new int[2];//拷贝的地址值被新数组的地址值被覆盖了
    arr[0]=9;//arr指向新数组改变元素并不会影响原堆内存的元素值
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值