這篇文章主要介紹“Java中的接口怎么實(shí)現(xiàn)”,在日常操作中,相信很多人在Java中的接口怎么實(shí)現(xiàn)問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Java中的接口怎么實(shí)現(xiàn)”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)專注于樂(lè)都網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供樂(lè)都營(yíng)銷型網(wǎng)站建設(shè),樂(lè)都網(wǎng)站制作、樂(lè)都網(wǎng)頁(yè)設(shè)計(jì)、樂(lè)都網(wǎng)站官網(wǎng)定制、小程序開(kāi)發(fā)服務(wù),打造樂(lè)都網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供樂(lè)都網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。接口的作用
接口的作用簡(jiǎn)單一點(diǎn)就是:接口是用來(lái)標(biāo)記類的,不同的類屬于不同的接口(通過(guò)向上轉(zhuǎn)型),管理接口比管理各種各樣的類方便多了,接口體現(xiàn)了抽象的觀點(diǎn),什么是抽象?抽象就是"抽去像的部分"。
使用接口解決問(wèn)題
問(wèn)題:現(xiàn)在我們要寫(xiě)個(gè)連接數(shù)據(jù)庫(kù)的類給用戶使用,有兩個(gè)函數(shù):一個(gè)返回Connection對(duì)象,另一個(gè)是關(guān)閉數(shù)據(jù)庫(kù),close(),一般的解決方法是:給每個(gè)數(shù)據(jù)庫(kù)寫(xiě)一個(gè)類,再根據(jù)用戶使用的數(shù)據(jù)庫(kù)決定使用具體的類。
好的,我們看看這樣有什么不好之處:
(1).首先每個(gè)類都要有重復(fù)的代碼,造成代碼的膨脹;
(2).其次最重要的是我們并不知道用戶使用什么數(shù)據(jù)庫(kù),可能是Oracle,可能是mysql,也可能是sqlserver等,這個(gè)問(wèn)題很難解決。
解決方案:
首先我們定義接口:
public interface DataBase
{
java.sql.Connection openDB(String url,String user,String password);
void close();
}
我們定義了兩個(gè)方法,openDB返回Connection對(duì)象,close()關(guān)閉數(shù)據(jù)庫(kù);
具體的實(shí)現(xiàn)在實(shí)現(xiàn)DataBase接口的類中;
下面看看實(shí)現(xiàn):
import java.sql.*;
public class Mysql implements DataBase
{
private String url=”jdbc:mysql:localhost:3306/test”;
private String user=”root”;
private String password=””;
private Connection conn;
public Connection openDB(url,user,password)
{
//連接數(shù)據(jù)庫(kù)的代碼
}
public void close()
{
//關(guān)閉數(shù)據(jù)庫(kù)
}
}
類mysql實(shí)現(xiàn)了DataBase接口,下面還有實(shí)現(xiàn)了DataBase接口的oraclesql等類;
這些類都?xì)w于DataBase接口了,如何在應(yīng)用程序中使用呢?
我們要定義DataBase對(duì)象 myDB,通過(guò)myDB來(lái)操縱數(shù)據(jù)庫(kù),可以不要分清是哪個(gè)類了。
另外的問(wèn)題:Java中不許我們實(shí)例化接口,如DataBase myDB=new DataBase();
我們只能myDB=new Mysql()或者myDB=new Oracle()。這樣我們還必須指定實(shí)例化哪個(gè)對(duì)象,好像前面的努力都白費(fèi)了啊!!那怎么辦呢,我們需要一個(gè)工廠:
public class DBFactory
{
public static DataBase Connection getConn()
{
Return(new Mysql());
}
}
實(shí)例化的代碼變成:myDB=DBFactory.getConn();
整個(gè)過(guò)程中接口不負(fù)責(zé)任何具體操作,其他的程序要連接數(shù)據(jù)庫(kù)的話,只需要構(gòu)造一個(gè)DB對(duì)象就OK,而不管工廠類如何變化。這就是接口的意義----抽象。
到此,關(guān)于“Java中的接口怎么實(shí)現(xiàn)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!