Java設計原則之里氏替換原則

里氏替換原則是指父類能出現的地方,其子類也可以出現,並且使用子類替換掉父類的話,程序不會報錯,反之,有子類的地方不一定能用父類替換。該原則要求我們儘可能的使用父類定義對象,具體運行的時候再決定子類對象類型。接下來,我們以人吃漢堡爲例,介紹里氏替換原則:
首先,定義一個父類Dishes

public class Dishes {

    public String getName() {
    	return "菜品";
	}
}

定義其子類Hamburg

public class Hamburger extends Dishes {

    @Override
    public String getName() {
        return "漢堡";
    }
}

定義一個Person類,並在eat方法裏聲明參數Dishes

public class Person {

    public void eat(Dishes dishes) {
        System.out.println("吃" + dishes.getName());
    }
}

最後創建Test類

public class Test {

    public static void main(String[] args) {
        Person person = new Person();
        person.eat(new Hamburger());
    }
}

在Person的eat方法參數本該出現的Dishes類,我們在運行時候使用Hamburger子類代替,程序不會報錯,Dishes類能出現的地方,子類Hamburger就能出現。
利用里氏替換原則可以提高代碼的複用性,子類繼承父類時,可以繼承父類的屬性和方法,同時子類也可以擴展自己的方法。所以,我們在定義對象引用時,儘量以父類進行定義。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章