可以理解為是一種特殊的抽象類。使用inte***ce關鍵字定義介面。
抽象類:是乙個事物所具有的功能。
介面:是乙個事物所具有的額外功能。
二者之間的選擇,推薦使用介面,如果父類的功能有功能體實現的,也有只定義功能子類可以具有的功能,但是沒有實現,可以抽象類。
介面的優點:
提高**的復用性。
解耦。定義程式設計規範。
介面多實現。
在jdk1.7及以前:
屬性:使用public static final 修飾公共的靜態的常量。
修飾可以不寫,但會預設存在。
eg:public static final int a=5;
和int a=5;是一樣的。
方法:使用public abstract修飾公共的抽象的方法。
修飾可以不寫,但會預設存在。
eg:public abstract void haha();
和int hehe();都是抽象方法。
注意:介面不能例項化。
介面需要實現,實現介面使用關鍵字implements,實現了介面就擁有了介面中的功能(與繼承很像)。
介面的使用:
1)具體的實現類:實現了介面,就要重寫這個介面中的所有抽象方法+按需新增。
2)抽象的實現類:重寫部分抽象功能+按需新增。
類只能實現介面,不能繼承介面,但是類只能繼承類,不能實現類,類單繼承類,類多實現介面。
介面不能繼承和實現類,介面只能繼承介面,不能實現介面,介面可以多繼承介面。
乙個類要先繼承後實現。
jdk1.8新增功能:
靜態方法
使用:只能通過介面名字呼叫
預設的方法
使用:只能通過實現類的物件使用
單例模式:保證乙個類只能構建乙個例項。
餓漢式:在類第一次載入的時候就建立例項 --執行緒安全的
懶漢式:第一次呼叫功能的時候建立例項 --執行緒不安全的,效率較高
實現步驟:
構造器私有化
私有的靜態的該類的引用
公共的靜態的訪問方式
//餓漢式單例
public class single
//3.公共的靜態的訪問方式
public static single newinstance()
//懶漢式單例
public class singleton
//3.公共靜態的訪問方式
//a b c
/*public static singleton newinstance()
return single;
}*///鎖方法
/*public synchronized static singleton newinstance()
return single;
}*///鎖**塊
public static singleton newinstance()
} return single; }}
public class test
}
靜態**模式
**模式的特點:
1.真實角色和**角色實現相同的介面|父類
2.**角色持有真實角色的引用
3.**行為
public class staticproxy
}//相同的介面
inte***ce adduser
//真實角色:專案經理
class usermanager implements adduser
}//**角色:hr
class hr implements adduser
public hr(usermanager manager)
@override
public void adduser()
}
簡單工廠模式
抽象產品角色:具體產品角色實現的介面|繼承的父類。
public class factory
//工廠
public static car factory(string type)else
return car; }}
//抽象產品角色
inte***ce car
//具體產品角色
class bmw implements car
}class mes implements car
}
JAVA 常用設計模式
一 單例設計模式 單例就是 保證乙個類僅有乙個例項,僅提供乙個訪問它的全域性訪問點。之前這個用得比較多 採用單例設計模式的類 singleton類 永遠只會有乙個例項化物件產生。具體實現步驟如下 1 將採用單例設計模式的類的構造方法私有化 採用private修飾 2 在其內部產生該類的例項化物件,並...
常用java設計模式
spring用到哪些設計模式 單例模式 public class singletondemo public static singletondemo getdemo return demo class testdemo 工廠模式 總體來說,凡是出現了大量的產品需要建立,並且具有共同的介面時,可以通過...
java常用設計模式 適配模式
適配模式 分為類的適配模式和物件的適配模式.舉個栗子,假如我有乙個粗水管cu和乙個細xi的水管,我要把他們接在一起,那怎麼辦呢 中間加個接頭不就好了嗎 zz 這個接頭就是介面卡.要求介面卡也得有一面是細的,一面是粗的,介面卡需要有的屬性,可以歸類成target.一 類的適配模式 細管子需要粗的管子為...