2018年5月24日 星期四

Java - 繼承 Extends

想必有時候剛入行的大大不知道繼承
剛開始也是讓人挺頭痛的
但是以生活動的例子來說
可能就直接排出掉很多學習障礙囉
我們就拿簡單的範例來說說吧

請依照順序觀看
1 . 父母有啥外觀與您相同?(頭髮、臉蛋、身高、體重)
2 . 我自己外觀長得怎樣?(頭髮、臉蛋、身高、體重)
3 . 長大後我會有哪些轉變?(頭髮、臉蛋、身高、體重)

首先,因為會繼承我父母的基因
public class ParentBody {

    public String hairColor() {
        // 黑頭髮
        return "Black";
    }

    public int height() {
        // 身高
        return 170;
    }

    public boolean glasses() {
        // 戴眼鏡
        return false;
    }

    public String language(String language) {
        // 家人聽能辨別這兩種語言
        if ("English".equals(language)) {
            return "英文";
        } else {
            return "中文";
        }
    }
}


所以我因該會是
public class MyBody extends ParentBody {

    public static void main(String[] arg) {
        ParentBody peter = new MyBody();
        System.out.println("Peter 髮色是 " + peter.hairColor() + " 色");
        System.out.println("Peter 身高是 " + peter.height() + " 公分");
        System.out.println("Peter 戴眼鏡 " + peter.glasses());
        System.out.println("Peter 是說 " + peter.language("Chinese"));
    }

}

Peter 髮色是 Black 色
Peter 身高是 170 公分
Peter 戴眼鏡 false

Peter 是說 中文

但是因為環境改變,我認定是(@override )

public class MyBody extends ParentBody {

    @Override
    public String hairColor() {
        // 因為潮流我就染白髮
        return "white";
    }

    @Override
    public String language(String language) {
        // 但我決定是這樣
        if ("English".equals(language)) {
            return "英文";
        } else if ("Chinese".equals(language)) {
            return "台語";
        } else {
            return "聽不懂";
        }
    }

    public static void main(String[] arg) {
        ParentBody peter = new MyBody();
        System.out.println("Peter 髮色是 " + peter.hairColor() + " 色");
        System.out.println("Peter 身高是 " + peter.height() + " 公分");
        System.out.println("Peter 戴眼鏡 " + peter.glasses());
        System.out.println("Peter 是說 " + peter.language("Chinese"));
    }

}


Peter 髮色是 white 色
Peter 身高是 170 公分
Peter 戴眼鏡 false

Peter 是說 台語

歡迎轉載,請註明出處。






沒有留言:

張貼留言