標籤:print 抽象方法 imp ret [] efault equal family font
- 文中“實現”一詞特指介面的繼承。
- 一個類實現多個介面時,不能出現同名的預設方法。
- 一個類既要實現介面又要繼承抽象類別,先繼承後實現。
- 一個抽象類別可以繼承多個介面(implements),一個介面卻不可以繼承抽象類別,一個介面可以用(extends)繼承多個介面。
- 介面中預設方法加default,抽象方法abstract可省略,資料成員必須賦初值,final可省略。
- 介面的作用是制定標準,一個各方都需要遵守的規則。
- 為了使用戶端簡化(不列出所有的對象供選擇),取得介面實例對象,優先採用工廠模式。
public class test1 {
public static void main(String[] args)
{ Fruit a = Factory1.getInstance("apple");
a.eat();
}}
interface Fruit
{
public void eat();
}
class Apple implements Fruit
{
public void eat()
{
System.out.println("吃蘋果");
}
}
class Orange implements Fruit
{
public void eat()
{
System.out.println("吃橘子");
}
}
class Factory1 //取得fruit類的執行個體對象
{
public static Fruit getInstance(String classname)
{
if("apple".equals(classname))
return new Apple();
if("Orange".equals(classname))
return new Orange();
return null;
}
}
此時的程式,用戶端(main方法)沒有和具體的子類別結合程度在一起,如果有更多的Friut子類介面出現只需要修改factory類即可,所有介面對象都通過factory類取得,在開發中
只要遇到取得介面對象執行個體的操作都應該採用工廠設計模式。
java介面----繼承(實現)方法