HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運營
CASE 服務(wù)案例
NEWS 熱點資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    靜態(tài)類和接口的區(qū)別(靜態(tài)類和接口的區(qū)別在哪)

    發(fā)布時間:2023-03-19 10:26:37     稿源: 創(chuàng)意嶺    閱讀: 118        問大家

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于靜態(tài)類和接口的區(qū)別的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com

    本文目錄:

    靜態(tài)類和接口的區(qū)別(靜態(tài)類和接口的區(qū)別在哪)

    一、Java類的基本組成和使用

    Java類的基本組成:java由一系列的接口和類組成,所有類的父類是:object。對象的生成:使用new關(guān)鍵字產(chǎn)生對象,該對象類中構(gòu)造方法就是用來產(chǎn)生對象的。對象由一系列的屬性和行為構(gòu)成。使用和刪除:對象構(gòu)成之后,就可以使用對象點方法、屬性進行操作,問刪除,如果對象失去了引用的指向,會自動被GC(垃圾回收機制)回收。接口與包:接口(行為的抽象),實現(xiàn)接口,必須實現(xiàn)接口的方法,哪怕是空實現(xiàn),目前我見過唯一一個沒有實現(xiàn)的類就是:HttpSrvlet,其中的service實現(xiàn)的是抽象方法,接口目的有3點:1、因為在java不像C++,java是單繼承,所以為了實現(xiàn)多繼承,提出了接口的概念。2、為了規(guī)范,比如財付通、支付寶等第3方支付工具,外面的人怎么用它呢?他們僅僅是提供了接口給外面的,不管你怎么操作,你必須按照我提供給你的接口去實現(xiàn)。3、多態(tài)(Oriented Object的思想),程序的健壯性(開閉原則),方便維護和擴展,動態(tài)綁定可以實現(xiàn)接口變量指向?qū)崿F(xiàn)類。包的概念就是為了方便管理。oracle中的包的概念也是如此常用的類和接口就不說了,自己去查查API,太多了

    二、靜態(tài)路由下一跳和出接口的區(qū)別?

    在以太網(wǎng)中,兩個接口之間的通信需要使用MAC地址,根據(jù)MAC地址,將數(shù)據(jù)封裝成數(shù)據(jù)幀后傳送到網(wǎng)絡(luò),進而通過物理線路傳送給對方。而獲得對方的MAC地址,是通過ARP的過程完成的。

    當(dāng)靜態(tài)路由中使用出接口時,路由器會認為目標網(wǎng)絡(luò)和接口處在“直連網(wǎng)絡(luò)”中。R1(config)#iproute23.23.23.0255.255.255.252f0/0

    查看:這時R1認為23.23.23.0/30這個網(wǎng)段是和自己直連的,

    在以太網(wǎng)直連網(wǎng)絡(luò)中設(shè)備間的通信是通過ARP廣播來獲取到到達目標主機的MAC地址的。即當(dāng)R1要訪問23.23.23.3這個IP地址時,R1認為目標網(wǎng)絡(luò)是自己的直連網(wǎng)絡(luò)(這時候還是屬于靜態(tài)路由),于是R1就要在F0/0口向網(wǎng)絡(luò)發(fā)出ARP請求廣播,來尋找23.23.23.3所對應(yīng)的MAC地址。

    這時,如果R2啟用了ARP代理,那么R2將R3應(yīng)答此ARP請求,即R2告訴R1:23.23.23.3所對應(yīng)的MAC地址是R2的F0/0接口的MAC。如果R2的ARP代理功能關(guān)閉,那么R1將不能ping通23.23.23.3。假設(shè)R3后面接了些的PC機,當(dāng)R1要訪問這些PC機時,都會產(chǎn)生一條該PC機和MAC地址對應(yīng)的ARP條目緩存,如果PC機的數(shù)量很大,該緩存也很大,有可能導(dǎo)致R1耗盡內(nèi)存來維護。

    在靜態(tài)路由中使用下一跳,路由表中顯示的是下一跳的IP。

    R1(config)#iproute23.23.23.0255.255.255.25212.12.12.2

    查看:

    這時去往23.23.23.0/30的網(wǎng)段只會維護一條ARP緩存,即12.12.12.2所對應(yīng)的是R2的F0/0接口地址。即使R3后面接了多臺主機,也只需要維護這么一條ARP緩存記錄。

    如果在點到點網(wǎng)絡(luò)環(huán)境下,無論是指定下一跳地址還是出接口,其效果都是一樣的。使用如HDLC和PPP之類協(xié)議來進行二層的封裝,不需要進行ARP的解析。

    結(jié)論:

    在配置靜態(tài)路由時,既可指定出接口,也可指定位下一跳,到底采用哪種方法,需要根據(jù)實際情況而定。

    在點到點網(wǎng)絡(luò)環(huán)境下,無論是指定下一跳地址還是出接口,其效果都是一樣的。

    但是在廣播網(wǎng)絡(luò)環(huán)境下,指定下一跳地址和指定出接口將會達到不同的效果。如果指定為出接口的話,那么不管數(shù)據(jù)包的目標地址是否有效,每次當(dāng)數(shù)據(jù)包到達時都會觸發(fā)一個ARP請求,又因為ARP代理功能在IOS環(huán)境下默認是打開的,這就意味著路由器需要配備大量的ARP高速緩存。而如果是指定為下一跳地址的話,僅當(dāng)?shù)谝粋€去往目標網(wǎng)絡(luò)的數(shù)據(jù)包到達時,才會觸發(fā)ARP請求。

    三、C#.NET里面抽象類和接口有什么區(qū)別?

    1抽象類

    (1) 抽象方法只作聲明,而不包含實現(xiàn),可以看成是沒有實現(xiàn)體的虛方法

    (2) 抽象類不能被實例化

    (3) 抽象類可以但不是必須有抽象屬性和抽象方法,但是一旦有了抽象方法,就一定要把這個類聲明為抽象類

    (4) 具體派生類必須覆蓋基類的抽象方法

    (5) 抽象派生類可以覆蓋基類的抽象方法,也可以不覆蓋。如果不覆蓋,則其具體派生類必須覆蓋它們。如:

    using System;

    public abstract class A //抽象類A

    {

    private int num=0;

    public int Num //抽象類包含屬性

    {

    get

    {

    return num;

    }

    set

    {

    num = value;

    }

    }

    public virtual int getNum() //抽象類包含虛方法

    {

    return num;

    }

    public void setNum(int n) // //抽象類包含普通方法

    {

    this.num = n;

    }

    public abstract void E(); //類A中的抽象方法E

    }

    public abstract class B : A //由于類B繼承了類A中的抽象方法E,所以類B也變成了抽象類

    {

    }

    public class C : B

    {

    public override void E() //重寫從類A繼承的抽象方法。如果類B自己還定義了抽象方法,也必須重寫

    {

    //throw new Exception("The method or operation is not implemented.");

    }

    }

    public class Test

    {

    static void Main()

    {

    C c = new C();

    c.E();

    }

    }

    二、接 口

    (1) 接口不能被實例化

    (2) 接口只能包含方法聲明

    (3) 接口的成員包括方法、屬性、索引器、事件

    (4) 接口中不能包含常量、字段(域)、構(gòu)造函數(shù)、析構(gòu)函數(shù)、靜態(tài)成員。如:

    public delegate void EventHandler(object sender, Event e);

    public interface ITest

    {

    //int x = 0;

    int A

    {

    get;

    set;

    }

    void Test();

    event EventHandler Event;

    int this[int index]

    {

    get;

    set;

    }

    }

    (5) 接口中的所有成員默認為public,因此接口中不能有private修飾符

    (6) 派生類必須實現(xiàn)接口的所有成員

    (7) 一個類可以直接實現(xiàn)多個接口,接口之間用逗號隔開

    (8) 一個接口可以有多個父接口,實現(xiàn)該接口的類必須實現(xiàn)所有父接口中的所有成員

    三、抽象類和接口

    相同點:

    (1) 都可以被繼承

    (2) 都不能被實例化

    (3) 都可以包含方法聲明

    (4) 派生類必須實現(xiàn)未實現(xiàn)的方法

    區(qū) 別:

    (1) 抽象基類可以定義字段、屬性、方法實現(xiàn)。接口只能定義屬性、索引器、事件、和方法聲明,不能包含字段。

    (2) 抽象類是一個不完整的類,需要進一步細化,而接口是一個行為規(guī)范。微軟的自定義接口總是后帶able字段,證明其是表述一類“我能做。。。”

    (3) 接口可以被多重實現(xiàn),抽象類只能被單一繼承

    (4) 抽象類更多的是定義在一系列緊密相關(guān)的類間,而接口大多數(shù)是關(guān)系疏松但都實現(xiàn)某一功能的類中

    (5) 抽象類是從一系列相關(guān)對象中抽象出來的概念, 因此反映的是事物的內(nèi)部共性;接口是為了滿足外部調(diào)用而定義的一個功能約定, 因此反映的是事物的外部特性

    (6) 接口基本上不具備繼承的任何具體特點,它僅僅承諾了能夠調(diào)用的方法

    (7) 接口可以用于支持回調(diào),而繼承并不具備這個特點

    (8) 抽象類實現(xiàn)的具體方法默認為虛的,但實現(xiàn)接口的類中的接口方法卻默認為非虛的,當(dāng)然您也可以聲明為虛的

    (9) 如果抽象類實現(xiàn)接口,則可以把接口中方法映射到抽象類中作為抽象方法而不必實現(xiàn),而在抽象類的子類中實現(xiàn)接口中方法

    四、關(guān)于java中接口定義常量和類定義常量的區(qū)別

    接口常量修飾格式固定的,public final 必不可少,你不寫,他也自動補全!

    類的常量沒這個特殊要求,看情況定;

    接口常量只有子類實現(xiàn)后才可以使用!

    類常量,創(chuàng)建實例就可以用,也或者靜態(tài)調(diào)用!

    以上就是關(guān)于靜態(tài)類和接口的區(qū)別相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    收款碼是靜態(tài)還是動態(tài)(收款碼是靜態(tài)還是動態(tài)碼)

    數(shù)媒靜態(tài)設(shè)計獲獎作品(數(shù)媒靜態(tài)設(shè)計獲獎作品圖片)

    靜態(tài)ip能提高網(wǎng)速嗎(靜態(tài)ip能提高網(wǎng)速嗎)

    網(wǎng)頁有廣告怎么去掉(手機瀏覽器怎么去廣告)

    景觀設(shè)計適合女生嗎(景觀設(shè)計適合女生嗎)