1. 程式人生 > >理解java的三大特性之多型

理解java的三大特性之多型

複製程式碼
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 -------------------------------
複製程式碼