這兩天在進行spring的學習,理解起ioc來有些困難,於是發覺自己對依賴理解的太少,昨晚到今天通過網路找資料好好的看了下介面及其繼承。
inte***ce是高度抽象的,必須得以實現,其設計與應用與實際問題和內部程式結構緊密關聯。是實現可復用的主要手段,可能會產生很多的類,從依賴優化的角度,來挖掘隱藏類,在簡潔和功能復用上尋求平衡。
介面相當於為一類問題提供了一套協議,要對其進行擴充套件則必須遵照它們。
介面的特性有:
1、介面能實現乙個介面或多個介面
2、成員變數是static final的,也就是只能被靜態方法訪問的常量
3、成員方法都是public abstract型別的
4、經常有多個實現類,以及factory類來實現解耦,這種設計就是物件導向的精髓,23種設計模式也許就是最好的例子。
5、介面不能例項化,可以通過例項化其實現類,來實現介面定義的行為。( 介面必須通過類來實現它的抽象方法)
6、當類實現了某個介面時,它必須實現介面中的所有抽象方法,否則這個類必須宣告為抽象的
7、不允許建立介面的例項(例項化),但允許定義介面型別的引用變數,該引用變數引用實現了這個介面的類的例項:
public class b implements a{}
a a = new b(); //引用變數a被定義為a介面型別,引用了b例項
a a = new a(); //錯誤,介面不允許例項化
介面的使用:
1、inte***ce可作為factory類的引數來用,對介面的操作實際上是對其實現類中的方法的使用,注意無參建構函式。
2、記住最典型的jdbc資料庫介面的實現
另外補充幾個abstract類的特性:
1、abstract類可以有非抽象方法
2、可以不實現其中的某些方法,這樣的子類還是抽象類
3、記住抽象方法的寫法,如public abstract viod method(); ,沒有大括號
4、不能多繼承
5、例項化介面或物件,注意引用變數範圍的大小,如:list list = new arraylist();
還只能真正的理解這麼多,練就這些基本功是需要耐心的。
介面的理解
例如乙個entitymodel類擁有很多屬性資訊 name,age,height,weight。現在如果想使用其中的height和weight,可以定義乙個介面ibodyinfo package com.wjy.understandinte ce public inte ce ibodyinfo 然...
介面的理解
首先按我的理解來說乙個例子 這個例子被很多人提過,下面的這個是按我自己的理解來說的 小王是乙個苦逼 酷斃 程式設計師,他要開發乙個程式,其中要實現乙個功能 連線到乙個資料庫,要對資料庫進行一些操作。實現功能首先需要有乙個資料庫,在開發的時候他使用的a廠家的資料庫。假設a廠家提供的類庫中實現小王需要的...
關於介面的乙個理解
connection connection drivermanager.getconnection jdbc microsoft sqlserver localhost 1433 databasename student sa sqladmin connection connection只是定義了乙...