Java中的接口知識匯總
一.為什么要使用接口
假如有一個需求:要求實現(xiàn)防盜門的功能。門有"開"和"關(guān)"的功能,鎖有"上鎖"和"開鎖"的功能。
分析:首先防盜門是一個門,門有開門和關(guān)門的功能,還有一把鎖,鎖有開鎖和上鎖,按照面向?qū)ο蟮木幊痰乃枷耄覀儠㈤T和鎖都作為一個類而單獨存在,但是,不能讓防盜門繼承自門的同時又繼承自鎖,防盜門不是鎖,不符合繼承中is a的關(guān)系,在java中支持單繼承。那么我們?nèi)绾蝸斫鉀Q這一問題,這時就要用到接口。
二.什么是接口
在軟件中接口是一種規(guī)范和標(biāo)準(zhǔn),他們可以約束類的行為,是一些方法特征的集合,但是沒有方法的實現(xiàn),接口其實上也可以看做是一個特殊的抽象類,但是采用和抽象類完全不同的方法來表示,兩者的設(shè)計理念也是不同的,抽象類有利于代碼復(fù)用,接口利于代碼的擴展和維護(hù)。
三.抽象類和接口的區(qū)別:
01抽象類可以提供成員方法的實現(xiàn)細(xì)節(jié),而接口中只能存在public abstract 方法;
02.抽象類中的成員變量可以是各種類型的,而接口中的成員變量只能是public static final類型的;
03.接口中不能含有靜態(tài)代碼塊以及靜態(tài)方法,而抽象類可以有靜態(tài)代碼塊和靜態(tài)方法;
04.一個類只能繼承一個抽象類,而一個類卻可以實現(xiàn)多個接口。
四.如何定義接口
首先先來看一下語法:
[修飾符] interface 接口名 extends 父接口1,父接口2,...
{
//常量定義
//方法定義
}
在一個類中實現(xiàn)接口語法:
class 類名 父類名 implements 接口1,接口2,.....
{
//類成員
}
五.定義接口注意點
01.接口的命名規(guī)則與類相同,如果修飾符是public ,則該接口在整個項目中可見;如果省略修飾符,則該接口只在當(dāng)前包中可見。
02.接口中可以定義常量,不能定義變量,如果你在接口中定義屬性,那么通過反編譯可以看見他會自動用public static final 修飾,接口中的屬性都是全局靜態(tài)常量,接口中的常量必須在定義時指定初始值。
03.接口中所有的方法都是抽象方法,接口中方法都會自動用public abstract 修飾,即接口中只有全局抽象方法。
04.接口不能實例化,接口中不能有構(gòu)造。
05接口之間可以通過extends實現(xiàn)繼承關(guān)系,一個接口可以繼承多個接口,但接口不能繼承類。
06.接口的實現(xiàn)類必須實現(xiàn)接口的全部方法,否則必須定義為抽象類。
相關(guān)文章
java 運行報錯has been compiled by a more recent version of the J
java 運行報錯has been compiled by a more recent version of the Java Runtime (class file version 54.0)2021-04-04
一文帶你掌握J(rèn)ava?LinkedBlockingQueue
LinkedBlockingQueue?是一個可選有界阻塞隊列,這篇文章主要為大家詳細(xì)介紹了Java中LinkedBlockingQueue的實現(xiàn)原理與適用場景,感興趣的可以了解一下2023-04-04
Java操作redis實現(xiàn)增刪查改功能的方法示例
這篇文章主要介紹了Java操作redis實現(xiàn)增刪查改功能的方法,涉及java操作redis數(shù)據(jù)庫的連接、設(shè)置、增刪改查、釋放資源等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
一篇文章帶你搞定 springsecurity基于數(shù)據(jù)庫的認(rèn)證(springsecurity整合mybatis)
這篇文章主要介紹了一篇文章帶你搞定 springsecurity基于數(shù)據(jù)庫的認(rèn)證(springsecurity整合mybatis),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
Spring的@Transactional注解使用詳細(xì)解析
這篇文章主要介紹了Spring的@Transactional注解使用詳細(xì)解析,@Transactional 注解相信大家并不陌生,平時開發(fā)中很常用的一個注解,它能保證方法內(nèi)多個數(shù)據(jù)庫操作要么同時成功、要么同時失敗,需要的朋友可以參考下2023-11-11
spring-mvc/springboot使用MockMvc對controller進(jìn)行測試
這篇文章主要介紹了spring-mvc/springboot使用MockMvc對controller進(jìn)行測試,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11
Mybatis數(shù)據(jù)批量插入如何實現(xiàn)
這篇文章主要介紹了Mybatis數(shù)據(jù)批量插入如何實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07

