您好,歡迎來到賦能網(wǎng)!

java中接口怎么用?java接口有什么功能?

賦能網(wǎng) 2023-05-09 64

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è)是錯誤來的。但是可以聲明接口變量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

如果本頁不是您要找的課程,您也可以百度查找一下: