黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java面試:面向對象Java技術

Java面試:面向對象Java技術

更新時間:2019-12-25 10:41:44 來源:動力節(jié)點 瀏覽3205次

面向對象的基本概念

  對象和類的概念

  對象:是把數(shù)據(jù)和數(shù)據(jù)操作方法放在一起,作為一個相互依存的整體,即對象

  類:對同類對象抽象出其共性,即類,類中的大多數(shù)方法只能被本類的方法進行處理,類通過一個簡單的外部接口與外界發(fā)生聯(lián)系,對象與對象之間通過消息進行通信

  所以我們是在面向對象進行編程,面向一個抽象的實體進行編程。

  面向對象和面向過程的區(qū)別

  面向過程就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實現(xiàn),使用的時候一個一個依次調用就可以了。

  面向對象是把構成問題事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。

  面向對象的優(yōu)點

  1,較高的開發(fā)效率

  2,較高的擴展性和代碼可重用性

  3,保證軟件的高可維護性

  面向對象的特征

  抽象

  抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節(jié)。

  繼承:

  繼承是一種聯(lián)結類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現(xiàn)有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。

  封裝

  封裝是客觀事物抽象成類,每個類對自身的數(shù)據(jù)和方法進行保護,類可以把自己的數(shù)據(jù)和方法只讓可信的類或者對象操作,對不可信的進行信息隱藏。

  多態(tài)性

  多態(tài)性是指允許不同類的對象對同一消息作出響應。比如同樣的加法,把兩個時間加在一起和把兩個整數(shù)加在一起肯定完全不同。又比如,同樣的選擇編輯-粘貼操作,在字處理程序和繪圖程序中有不同的效果。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,很好的解決了應用程序函數(shù)同名問題。

  面向對象的六大原則

  單一職責原則(迪米特法則)(Single-Resposibility Principle):一個類,最好只做一件事,只有一個引起它的變化。單一職責原則可以看做是低耦合、高內聚在面向對象原則上的引申,將職責定義為引起變化的原因,以提高內聚性來減少引起變化的原因。

  開放封閉原則(Open-Closed principle):軟件實體應該是可擴展的,而不可修改的。也就是,對擴展開放,對修改封閉的。

  Liskov替換原則(Liskov-Substituion Principle):子類必須能夠替換其基類。這一思想體現(xiàn)為對繼承機制的約束規(guī)范,只有子類能夠替換基類時,才能保證系統(tǒng)在運行期內識別子類,這是保證繼承復用的基礎。

  依賴倒置原則(Dependecy-Inversion Principle):依賴于抽象。具體而言就是高層模塊不依賴于底層模塊,二者都同依賴于抽象;抽象不依賴于具體,具體依賴于抽象。

  接口隔離原則(Interface-Segregation Principle):使用多個小的專門的接口,而不要使用一個大的總接口

  合成復用原則(Composite Reuse Principle)是盡量使用合成/聚合的方式,而不是使用繼承。

  抽象類和接口

  這兩種方式實現(xiàn)了以上面向對象特性里的繼承和抽象

  抽象類

  抽象類的特性如下

  抽象類中可以構造方法

  抽象類中可以存在普通屬性,方法,靜態(tài)屬性和方法。

  抽象類中可以存在抽象方法。

  如果一個類中有一個抽象方法,那么當前類一定是抽象類;抽象類中不一定有抽象方法。

  抽象類中的抽象方法,需要有子類實現(xiàn),如果子類不實現(xiàn),則子類也需要定義為抽象的。

  抽象類不能被實例化,抽象類和抽象方法必須被abstract修飾(其實這就是抽象類和普通類的區(qū)別,其它和普通類都差不多)

  java1.8實測,抽象類中的抽象方法和非抽象方法在不加修飾符的情況下,都是默認的default

  接口

  接口的一些使用特性

  在接口中只有方法的聲明,沒有方法體。

  接口體只能用 public 和 abstract 修飾。only public & abstract are permitted 。

  在接口中只有常量,因為定義的變量,在編譯的時候都會默認加上public static final

  在接口中的方法,永遠都被public來修飾,不加修飾符,默認也是public。 。

  接口中沒有構造方法,也不能實例化接口的對象。(所以接口不能繼承類)

  接口可以實現(xiàn)多繼承,接口可以繼承接口,用extends

  接口中定義的方法都需要有實現(xiàn)類來實現(xiàn),如果實現(xiàn)類不能實現(xiàn)接口中的所有方法則實現(xiàn)類定義為抽象類。

  注意:接口是一種特殊的抽象類

  抽象類與接口的異同

  相同點

  1,相同點是接口和抽象類都不能實例化

  2,接口的實現(xiàn)類或抽象類的子類實現(xiàn)了接口或抽象類中的方法后才能實例化。

  不同點

  1,首先類可以實現(xiàn)多個接口,但只能繼承一個抽象類(從繼承角度)

  2,接口體只能用 public 和 abstract 修飾,而抽象類的類訪問修飾符除了(和abstract不搭的關鍵字列表系列)final,abstract,private,static,synchorized,native之外基本都可以(從類的修飾符角度)

  3,抽象類可以有普通的成員變量,靜態(tài)變量。而接口的變量默認為public static final,只能有靜態(tài)的不可修改的變量,而且必須賦初值(從變量角度)

  4,接口里的方法只能用public修飾,而抽象類的方法可以用除了(和abstract不搭的關鍵字列表系列)final,abstract,private,static,synchorized,native的方法修飾符。并且接口只有未實現(xiàn)方法,但抽象類可以有普通方法(從方法角度)

  5,接口不能由構造函數(shù),抽象類可以有構造函數(shù)。(從構造函數(shù)角度)

  重寫和重載

  多態(tài)有兩種實現(xiàn)方式,重載(編譯期多態(tài))和重寫(運行期多態(tài))

  重載(靜態(tài)多分派)

  1、在同一個類中 。 2、方法名相同。3、方法的形參列表不同,具體的不同表現(xiàn)為: 類型、個數(shù)、順序的不同才可以構成重載。4、與方法的返回值類型與訪問權限或是拋出異常無關

  注意:java中可以有多個重載的main方法,只有public static void main(String[] args){}是函數(shù)入口

  重寫(動態(tài)單分派)

  重寫是子類實現(xiàn)父類的方法

  在子類中可以根據(jù)需要對從基類中繼承來的方法進行重寫。

  重寫的方法和被重寫的方法必須具有相同方法名稱、參數(shù)列表和返回類型。

  重寫方法不能使用比被重寫的方法更嚴格的訪問權限。

  子類方法拋出的異常必須和父類方法拋出的異常相同,或者是父類方法拋出的異常類的子類。

  父類的靜態(tài)方法是不能被子類覆蓋為非靜態(tài)方法。父類的非靜態(tài)方法不能被子類覆蓋為靜態(tài)方法。

  子類可以定義與父類的靜態(tài)方法同名的靜態(tài)方法,以便在子類中隱藏父類的靜態(tài)方法。區(qū)別:運行時,JVM把靜態(tài)方法和所屬的類綁定,而把實例方法和所屬的實例綁定。子類定義與父類同名的靜態(tài)方法但不是覆蓋父類的方法

  Justfuck j = new B(); //j是父類引用,B()是子類對象,A()是靜態(tài)方法。j.A();最后打印出的還是base,即父類的輸出結果

  父類的私有方法不能被覆蓋

  父類的非抽象方法可以被覆蓋為抽象方法

  子類可以重寫父類的同步方法。如果父類中的某個方法使用了 synchronized關鍵字,而子類中也覆蓋了這個方法,默認情況下子類中的這個方法并不是同步的,必須顯示的在子類的這個方法中加上 synchronized關鍵字才可。當然,也可以在子類中調用父類中相應的方法,這樣雖然子類中的方法并不是同步的,但子類調用了父類中的同步方法,也就相當子類方法也同步了

  總的來說:方法的重寫(override)三同一小一大原則:

  方法名相同,參數(shù)類型相同,參數(shù)列表相同

  子類拋出異常小于等于父類方法拋出異常,

  子類訪問權限大于等于父類方法訪問權限。

  重載和重寫的區(qū)別

  重載是同一個類中方法之間的關系,重寫是子類和父類之間的關系

  重寫只能由一個方法或只能由一對方法產(chǎn)生關系,重載可以是多個方法之間的關系

  重寫要求參數(shù)列表相同,重載要求不同,重寫要求返回值相同,重載不要求

Java面試:面向對象Java技術

      以上就是動力節(jié)點Java培訓機構小編介紹的“Java面試:面向對象Java技術”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。

相關推薦

最新最全java面試題及答案(初級到高級)

史上最全的中高級JAVA工程師面試題及答案匯總

Java高級開發(fā)工程師面試題

2019史上最全java面試題題庫大全800題

哪有資深java工程師面試題

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 日本黄色录像视频 | 在线视频永久在线视频 | 香蕉污视频在线观看 | 甜性涩爱在线观看e8 | 中文字幕av一区 | 99精品在线免费观看 | 成人欧美精品大91在线 | 亚洲成在人线av | 亚洲欧洲网站 | 热re66久久精品国产99re | 你懂的在线免费观看 | 欧美乱妇高清无乱码 | 日本高清中文字幕视频在线 | a级在线看 | 日本欧美一区二区三区视频 | 久久国产午夜精品理论篇小说 | 久久精品国产999久久久 | 一区二区三区精品国产欧美 | 91精品观看91久久久久久 | 国产在线观看色 | 成人免费观看网欧美片 | 成人伦理在线观看 | 国产精品高清免费网站 | 波多野结衣视频在线播放 | 日韩第九页 | 99视频在线观看免费视频 | 午夜剧场一级片 | 国产精品18久久久久网站 | 久久精品蜜芽亚洲国产a | 视频一区 中文字幕 | 91成人免费在线视频 | 一区二区三区在线 | 网站 | 精品久久久久久中文字幕欧美 | 高h喷水荡肉爽文np欲 | 亚洲阿v天堂2021在线观看 | 国产一区免费视频 | 香蕉视频在线观看黄 | 国产女人成人精品视频 | 中文字幕在线视频观看 | 荡女淫春未删减在线观看 | 国产精品视频a |