2017年4月30日 星期日

Java :多載(overloading)與覆寫(overriding)

多載(overloading):
多載的定義是:在同一個類別內,另外定義一個方法名稱相同、但是參數數目和資料型態不同的方法。多載的技巧除了用在方法上之外,建構子也可以使用。

方法的多載:

class Car{
	public void setCar(String s){
		System.out.printf("車號:%s",s);
	}
	public void setCar(int d){
		System.out.printf("油量:%d",d);
	}
	public void setCar(String i,int g){
		System.out.printf("車名:%s 價錢:%d",i,g);
	}
}

public class Sample {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Car c1 = new Car();
		c1.setCar("BMW",2000000);
	}

}
//執行結果: 車名:BMW 價錢:2000000

建構子的多載
介紹建構子的多載之前必須先了解何謂建構子,建構子和方法有點類似,但是建構子是用在當我們透過某個既有的類別建立物件時,會順便自動呼叫並執行建構式的內容。

多載也可以用在建構子上,根據上述的定義,建構子的多載就是可以同時建立多個建構式,但是參數數目和資料型態一定要不同。


class Car{
	private String name;
	private int gas,dollar;

        public Car(String name,int gas){
		
	}
	
	public Car(String name,int gas,int dollar){
		this.name = name;
		this.gas = gas;
		this.dollar = dollar;
	}
	
	public void show(){
		System.out.printf("車名:%s,油量:%d,價錢:%d",name,gas,dollar);
	}
}

public class Sample {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Car c1 = new Car("BMW",2000,1800000);
		c1.show();
	}

}
//執行結果: 車名:BMW,油量:2000,價錢:1800000

覆寫(overriding)
其定義是: 在子類別當中定義另一方法名稱、參數數量和資料型態都完全相同的方法。


class Car{
	
	public void show(){
		System.out.printf("show Car");
	}
}

class RacingCar extends Car{
	public void show(){
		System.out.println("show RacingCar");
	}
}

public class Sample {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		RacingCar c1 = new RacingCar();
		c1.show();
	}

}
//執行結果: show RacingCar

沒有留言:

張貼留言