一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

java語(yǔ)言

Java基礎:抽象類(lèi)和接口

時(shí)間:2024-12-17 13:53:08 java語(yǔ)言 我要投稿
  • 相關(guān)推薦

Java基礎:抽象類(lèi)和接口

  導語(yǔ):Java是一門(mén)面向對象編程語(yǔ)言,不僅吸收了C++語(yǔ)言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語(yǔ)言具有功能強大和簡(jiǎn)單易用兩個(gè)特征。下面我們來(lái)看看抽象類(lèi)和接口,希望對大家有所幫助。

  第一節 抽象類(lèi)

  一.包含抽象方法的類(lèi);

  抽象方法:只有方法聲明,沒(méi)有方法實(shí)現的方法稱(chēng)為“抽象方法”;

  抽象類(lèi)是對問(wèn)題領(lǐng)域進(jìn)行分析后得出的抽象概念。

  抽象類(lèi)和抽象方法必須使用abstract修飾。

1
2
3
<code>抽象類(lèi)的語(yǔ)法,規則。            
定義抽象類(lèi)有三種情況:直接定義一個(gè)抽象類(lèi);或繼承一個(gè)抽象類(lèi),但是沒(méi)有完全實(shí)現父類(lèi)包含的抽象方法;或實(shí)現一個(gè)接口,但沒(méi)有完全實(shí)現接口中的抽象方法。              
</code>          

  二.abstrac關(guān)鍵字

  abstract不能用來(lái)修飾成員變量和構造方法,即沒(méi)有抽象變量和抽象構造方法的說(shuō)法。abstract修飾的方法必須被其子類(lèi)重寫(xiě)才有意義,否則這個(gè)方法永遠不會(huì )有方法體,因此抽象方法不能定義為private,即為private和abstract不能同時(shí)修飾方法,abstract也不能和static,final或native同時(shí)修飾同一方法。

  三.使用抽象類(lèi)

  抽象類(lèi)不能實(shí)例化(不能new 父類(lèi)),只能被當成父類(lèi)來(lái)繼承。作為子類(lèi)的模板。

  實(shí)例化它的子類(lèi),父類(lèi)引用子類(lèi)。

  第二節 接口 interface

  接口中的所有方法都是抽象方法

  一.a.接口;定義了某一批類(lèi)所需要遵守的公共行為規范,只規定這批類(lèi)必須提供的某些方法,而不是提供任何實(shí)現。體現了規范和實(shí)現的分離。是讓系統的各個(gè)模塊間面向接口耦合,是一種松耦合設計,降低模塊間的耦合,增強系統的可擴展性和可維護性。

  b.定義一個(gè)接口,java只支持單一繼承,不支持多重繼承。java允許一個(gè)類(lèi)實(shí)現多個(gè)接口,使得程序更加靈活、易于擴展。

  c.一個(gè)接口可以繼承多個(gè)父接口,但接口只能繼承接口,不能繼承類(lèi);在接口里可以包含靜態(tài)常量,抽象方法,內部類(lèi),內部接口以及枚舉定義,java8之后允許定義默認方法,類(lèi)方法;接口和類(lèi)的默認訪(fǎng)問(wèn)符不同,接口體內定義的常量,方法等默認為public,可省略,即為接口定義的常量或方法不寫(xiě)public,其訪(fǎng)問(wèn)權依然是public。

  d.實(shí)現一個(gè)接口,(關(guān)鍵字implements)implements是一個(gè)類(lèi),實(shí)現一個(gè)接口用的關(guān)鍵字,它是用來(lái)實(shí)現接口中定義的抽象方法。實(shí)現一個(gè)接口,必須實(shí)現接口中的所有方法;但沒(méi)有完全實(shí)現接口中包含的抽象方法的類(lèi)是抽象類(lèi)

  二.接口的繼承

  注意點(diǎn):a.和抽象類(lèi)一樣,接口是一種更加抽象的類(lèi)結構,不能對接口直接實(shí)例化;可以聲明接口變量,并且用接口指向當前接口實(shí)現類(lèi)的實(shí)例。使用接口指向當前接口實(shí)現類(lèi)的實(shí)例對象,這種方式也是多態(tài)性的體現。

  一個(gè)接口可以繼承多個(gè)接口,這和類(lèi)的繼承是不同的;接口體現的是一種規范;抽象類(lèi)體現的是一種模板式設計。接口中定義的變量都是常量;抽象類(lèi)中的定義的變量與普通類(lèi)一樣,默認是缺省。

  三.implements和extends的區別:

1
2
3
4
<code><code>Extends,表示對父類(lèi)的繼承,可以實(shí)現父類(lèi),也可以調用父類(lèi)初始化 this.parent()。而且會(huì )覆蓋父類(lèi)定義的變量或者函數。            
Implements,表示對接口的實(shí)現,接口通過(guò)關(guān)鍵字interface 進(jìn)行定義。eg:public class S implements F,在接口F中對方法進(jìn)行聲明,在類(lèi)S中對該方法進(jìn)行實(shí)現。            
</code></code>          

  四.面向接口編程

1
2
3
<code><code><code>面向接口編程和面向對象編程的關(guān)系:            
首先,面向接口編程和面向對象編程并不是平級的,它并不是比面向對象編程更先進(jìn)的一種獨立的編程思想,而是附屬于面向對象思想體系,屬于其一部分;蛘哒f(shuō),它是面向對象編程體系中的思想精髓之一。            
</code></code></code>          

  什么是面向接口編程:

  譬如有一個(gè)Animal接口和一個(gè)NightWorking接口,公雞實(shí)現了Animal接口,貓頭鷹實(shí)現了Animal接口和NightWorking接口,還有一個(gè)實(shí)現了NightWorking接口的路燈,在A(yíng)nimal的范疇下,我們可以稱(chēng)公雞和貓頭鷹是同類(lèi)事物,而在NightWorking的范疇下,我們可以稱(chēng)貓頭鷹和路燈是同類(lèi)事物,這里就是說(shuō)對于animal接口來(lái)說(shuō),要看種類(lèi)的話(huà)路燈是不會(huì )實(shí)現animal里面的NightWorking接口的,但是要看是否有想要的功能實(shí)現NightWorking接口的話(huà),貓頭鷹和路燈都同一事物。 不是面向實(shí)現,而是面向接口。

1
2
<code><code><code><code>特點(diǎn):可維護性,可擴展性          
</code></code></code></code>          

  第三節 instanceof 關(guān)鍵字

  instanceof是Java的一個(gè)二元操作符,和==,>,<是同一類(lèi)東東。由于它是由字母組成的,所以也是Java的保留關(guān)鍵字。

1
2
3
<code><code><code><code><code>作用:鑒別對象的類(lèi)型。            
語(yǔ)法: 引用類(lèi)型變量 instanceof 引用類(lèi)型 示例:String a=“abc”; Object b=“abc”; 判斷→System.out.println(“是否是object的實(shí)例”+(b instanceof object));          
</code></code></code></code></code>          

【Java基礎:抽象類(lèi)和接口】相關(guān)文章:

Java抽象類(lèi)和接口的比較08-01

Java中接口和抽象類(lèi)的異同08-12

Java抽象類(lèi)與接口的區別04-17

理解Java的接口與抽象類(lèi)06-22

接口和抽象類(lèi)的區別05-09

Java的抽象和接口03-31

Java中的抽象類(lèi)07-15

java繼承抽象類(lèi)07-28

Java接口介紹05-08

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看