在java中,接口像類一樣,可以有方法和變量,但在接口中聲明的方法默認(rèn)是抽象的,那在實(shí)際開發(fā)中,我們要怎么使用java中接口呢?下面來我們就來給大家講解一下。
要實(shí)現(xiàn)接口,我們使用關(guān)鍵字:implement
簡單實(shí)例:
讓我們考慮一個(gè)Bicylce, Bike, car等車子的例子,它們有共同的功能。所以我們建立了一個(gè)接口并把所有這些共同的功能放在一起。讓Bicylce, Bike, car…等等用他們自己的方式在他們自己的類里實(shí)現(xiàn)所有這些特征。
import java.io.*; interface Vehicle { // 一切都是抽象的方法 void changeGear(int a); void speedUp(int a); void applyBrakes(int a); } class Bicycle implements Vehicle { int speed; int gear; // 換檔 @Override public void changeGear(int newGear) { gear = newGear; } // to increase speed @Override public void speedUp(int increment) { speed = speed + increment; } // 降低速度 @Override public void applyBrakes(int decrement) { speed = speed - decrement; } public void printStates() { System.out.println("speed: " + speed + " gear: " + gear); } } class Bike implements Vehicle { int speed; int gear; // to change gear @Override public void changeGear(int newGear) { gear = newGear; } // to increase speed @Override public void speedUp(int increment) { speed = speed + increment; } // to decrease speed @Override public void applyBrakes(int decrement) { speed = speed - decrement; } public void printStates() { System.out.println("speed: " + speed + " gear: " + gear); } } class GFG { public static void main(String[] args) { // creating an inatance of Bicycle // doing some operations Bicycle bicycle = new Bicycle(); bicycle.changeGear(2); bicycle.speedUp(3); bicycle.applyBrakes(1); System.out.println("Bicycle present state :"); bicycle.printStates(); // creating instance of bike. Bike bike = new Bike(); bike.changeGear(1); bike.speedUp(4); bike.applyBrakes(3); System.out.println("Bike present state :"); bike.printStates(); } }
java接口有什么功能?
在Java語言規(guī)范中,一個(gè)方法的特征僅包括方法的名字、參數(shù)的數(shù)目和類型,而不包括方法的返回類型、參數(shù)名以及所拋出來的異常。在Java編譯器檢查方法的重載時(shí),會根據(jù)這些條件判斷兩個(gè)方法是否是重載方法。但在Java編譯器檢查方法的置換時(shí),則會進(jìn)一步檢查兩個(gè)方法(分處超類型和子類型)的返還類型和拋出的異常是否相同。
接口實(shí)現(xiàn)和類繼承的規(guī)則不同,為了數(shù)據(jù)的安全,繼承時(shí)一個(gè)類只有一個(gè)直接父類,也就是單繼承,但是一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,接口彌補(bǔ)了類的不能多繼承缺點(diǎn),繼承和接口的雙重設(shè)計(jì)既保持了類的數(shù)據(jù)安全也變相實(shí)現(xiàn)了多繼承。
Java接口本身沒有任何實(shí)現(xiàn),因?yàn)镴ava接口不涉及表象,而只描述public行為,所以Java接口比Java抽象類更抽象化。但是接口不是類,不能使用new 運(yùn)算符實(shí)例化一個(gè)接口。如 x=new comparable(......);//這個(gè)是錯(cuò)誤來的。但是可以聲明接口變量Comparable x; //這是允許的。
Java接口的方法只能是抽象的和公開的,Java接口不能有構(gòu)造器,Java接口可以有public、static和final屬性。即接口中的屬性可以定義為 public static final int value=5; [1]
接口把方法的特征和方法的實(shí)現(xiàn)分割開來。這種分割體現(xiàn)在接口常常代表一個(gè)角色,它包裝與該角色相關(guān)的操作和屬性,而實(shí)現(xiàn)這個(gè)接口的類便是扮演這個(gè)角色的演員。一個(gè)角色由不同的演員來演,而不同的演員之間除了扮演一個(gè)共同的角色之外,并不要求其它的共同之處。
Java有了接口能夠保證代碼的安全和嚴(yán)密,并且更加有利于對代碼進(jìn)行維護(hù),最后大家如果想要了解更多java初識知識,敬請關(guān)注賦能網(wǎng)。
本文鏈接:
本文章“java中接口怎么用?java接口有什么功能?”已幫助 64 人
免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識產(chǎn)權(quán)侵權(quán)的法律責(zé)任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579