1. 程式人生 > >Java 中的繼承的簡單例子(super關鍵字)

Java 中的繼承的簡單例子(super關鍵字)

class Cleanser{
	private String s="Cleanser";
	public void append(String a){s+=a;}
	public void dilute(){append("dilute()");}
	public void apply(){append("apply()");}
	public void scrub(){append("scrub()");}
	public String toString(){return s;}
	public static void main(String[]args){
		Cleanser x=new Cleanser();
		x.dilute();x.apply();x.scrub();
		System.out.println(x);
	}
}
public class Detergent extends Cleanser{
public void scrub(){
	append("Detergent.scrub()");
	super.scrub();
}
public void foam(){
	append("foam()");
}
public static void main(String[] args){
	Detergent x=new Detergent();
	x.dilute();
	x.apply();
	x.scrub();
	x.foam();
	System.out.println(x);
	System.out.print("Testing base class:");
	Cleanser.main(args);
}
}

/*
 * 在Detergent類中,並不能直接呼叫scrub(),因為這樣做將會產生遞迴,而這並不是你所期望的。
 * 為解決此問題,Java用super關鍵字表示超類的意思,當前類就是從超類繼承來的。
 */






輸出:

Cleanserdilute()apply()Detergent.scrub()scrub()foam()
Testing base class:Cleanserdilute()apply()scrub()