理解java的三大特性之多型
阿新 • • 發佈:2019-01-08
public class Wine { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public Wine(){ } public String drink(){ return "喝的是 " + getName(); } /** * 重寫toString()*/ public String toString(){ return null; } } public class JNC extends Wine{ public JNC(){ setName("JNC"); } /** * 重寫父類方法,實現多型 */ public String drink(){ return "喝的是 " + getName(); } /** * 重寫toString() */ public String toString(){return "Wine : " + getName(); } } public class JGJ extends Wine{ public JGJ(){ setName("JGJ"); } /** * 重寫父類方法,實現多型 */ public String drink(){ return "喝的是 " + getName(); } /** * 重寫toString() */ public String toString(){return "Wine : " + getName(); } } public class Test { public static void main(String[] args) { //定義父類陣列 Wine[] wines = new Wine[2]; //定義兩個子類 JNC jnc = new JNC(); JGJ jgj = new JGJ(); //父類引用子類物件 wines[0] = jnc; wines[1] = jgj; for(int i = 0 ; i < 2 ; i++){ System.out.println(wines[i].toString() + "--" + wines[i].drink()); } System.out.println("-------------------------------"); } } OUTPUT: Wine : JNC--喝的是 JNC Wine : JGJ--喝的是 JGJ -------------------------------