方法-重写-重载-传参

方法的重写(Override)

用于继承关系中,方法名,返回值,参数列表必须相同

例:

class Father {
	
	public void show() {
		System.out.println("show Father");
	}

}

class Son extends Father {
	
	public void show() {
		System.out.println("show Son");
	}

}

哪些方法不可以被重写

被final修饰的方法

被static修饰的方法

被private修饰的方法

对象的多态性

1.向上转型(自动完成):父类 父类对象 = 子类实例

class Fu{
	public void show() {
			System.out.println("Fu");
	}
}
class Zi extends Fu{
	public void show() {
		  	System.out.println("Zi");
	}
}
public class Test {
       public static void main(String[] args) {
    	   Fu a=new Zi(); //向上转型
    	   a.show();
	
} 

2.向下转型(强制转换):子类 子类对象 =(子类) 父类实例;

class Fu{
	public void show() {
			System.out.println("Fu");
	}
}
class Zi extends Fu{
	public void show() {
		  	System.out.println("Zi");
	}
}
public class Test {
       public static void main(String[] args) {
    	  Fu1 a=new Zi1(); //向下转型
          Zi1 b=(Zi1) a;
          b.show();
} 

方法的重载(Overload)

方法名一致,方法的参数个数不同或参数类型不同,与返回值无关

例:

public class Test {   

public void add(int x){
    
 }
public int add(int y, int x){
    return ;
 }
}

方法的参数传递

public class Parameter {
     public static void main(String[] args) {
        Parameter P = new Parameter();
        // 实际参数为“王思”
        p.show("王思");
    }

    public void show(String name) {
        // 形式参数为 name
        System.out.print(name);
    }   
}

1.形参是基本数据类型(在栈里面开内存):值传递;不会影响到实际参数。

(byte、short、char、int、long、float、double、boolean)

public class Test2 {
    public static void main(String[] args) {
        Test2 t = new Test2();
        int x = 13;
        t.method(x);
        System.out.println("method调用完后的x: " + x); //13
    }
    private void method(int x){
        System.out.println("method中重新赋值之前的x: " + x); //13
        x = 20;
        System.out.println("method中重新赋值之后的x: " + x); //20
    }
}

2.实参是引用数据类型(在堆里面开内存  new):地址值传递;会影响到实际参数。

特殊类型:String,包装类(Byte、Short、Character、Integer、long、Float、Double、Boolean)

public class Test2 {
    public static void main(String[] args) {
        int[] a = new int []{1, 2, 4};
        method(a);
        System.out.println("调用完method方法之后:" + a[1]); //1
    }
    public static void method(int[] a){
        System.out.println("method内修改a[1]之前:" + a[1]); //15
        a[1] = 15;
        System.out.println("method内修改a[1]之后:" + a[1]); //15
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值