摘要:最近一直在刷校招的題目,突然發(fā)現(xiàn)自己對接口和抽象類的掌握并不牢固,所以想記錄一下對接口和抽象類的理解一抽象類抽象方法是一種特殊的方法它只有聲明,而沒有具體的實現(xiàn)。因為抽象類中含有無具體實現(xiàn)的方法,所以不能用抽象類創(chuàng)建對象。
最近一直在刷校招的題目,突然發(fā)現(xiàn)自己對接口和抽象類的掌握并不牢固,所以想記錄一下對java接口和抽象類的理解一:抽象類
抽象方法是一種特殊的方法:它只有聲明,而沒有具體的實現(xiàn)。抽象方法的聲明格式為:
abstract void test();
抽象方法必須用abstract關鍵字進行修飾。如果一個類含有抽象方法,則稱這個類為抽象類,抽象類必須在類前用abstract關鍵字修飾。因為抽象類中含有無具體實現(xiàn)的方法,所以不能用抽象類創(chuàng)建對象。
public abstract class circle { abstract void test(); }
抽象類和普通類的主要有三點區(qū)別:
抽象方法必須為public或者protected(因為如果為private,則不能被子類繼承,子類便無法實現(xiàn)該方法),缺省情況下默認為public。
抽象類不能用來創(chuàng)建對象;
如果一個類繼承于一個抽象類,則子類必須實現(xiàn)父類的抽象方法。如果子類沒有實現(xiàn)父類的抽象方法,則必須將子類也定義為為abstract類。
二:接口CalInterface接口
public interface CalInterface { public float PI = 3.14f; public float getArea(float a); public float getPi(); }
Cire類implements CalInterface接口
public class Cire implements CalInterface { @Override public float getArea(float a) { return 0; } @Override public float getPi() { return 0; } }
接口中的方法實例,所有的方法不能有具體的實現(xiàn),也就是說,接口中的方法必須都是抽象方法,implements的類需要重寫該方法,從這里可以隱約看出接口和抽象類的區(qū)別,接口是一種極度抽象的類型,它比抽象類更加“抽象”,并且一般情況下不在接口中定義變量。
接口中的變量會被隱式地指定為public static final變量(并且只能是public static final變量,用private修飾會報編譯錯誤),而方法會被隱式地指定為public abstract方法且只能是public abstract方法(用其他關鍵字,比如private、protected、static、 final等修飾會報編譯錯誤)
抽象類可以提供成員方法的實現(xiàn)細節(jié),而接口中只能存在方法;
抽象類中的成員變量可以是各種類型的,而接口中的成員變量只能是public static final類型的;
接口中不能含有靜態(tài)代碼塊以及靜態(tài)方法,而抽象類可以有靜態(tài)代碼塊和靜態(tài)方法;
參考資料 https://www.cnblogs.com/dolph...
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/77146.html
摘要:抽象類和接口小記抽象類和接口實現(xiàn)了的多態(tài)多態(tài)是面向對象程序語言的核心在項目開發(fā)過程中其實很少使用抽象類接口用得比較多今天小記一下抽象類和接口的區(qū)別抽象類抽象類不能被實例化抽象類可以繼承可以定義變量可以定義構造方法抽象方法的要顯式的寫出來其子 Java抽象類和接口小記 Java抽象類和接口實現(xiàn)了java的多態(tài).多態(tài)是面向對象程序語言的核心,在項目開發(fā)過程中,其實很少使用抽象類,接口用得比...
摘要:如果一個非抽象類遵循了某個接口,就必須實現(xiàn)該接口中的所有方法。抽象類是對整個類整體進行抽象,包括屬性行為,但是接口卻是對類局部行為進行抽象。因此最好的解決辦法是單獨將報警設計為一個接口,包含行為設計為單獨的一個抽象類,包含和兩種行為。 一、抽象類 二、接口 三、抽象類和接口的區(qū)別 一、抽象類 在了解抽象類之前,先來了解一下抽象方法。抽象方法是一種特殊的方法:它只有聲明,而沒有具體的實現(xiàn)...
摘要:很多常見的面試題都會出諸如抽象類和接口有什么區(qū)別,什么情況下會使用抽象類和什么情況你會使用接口這樣的問題。在討論它們之間的不同點之前,我們先看看抽象類接口各自的特性。抽象類抽象類是用來捕捉子類的通用特性的。 很多常見的面試題都會出諸如抽象類和接口有什么區(qū)別,什么情況下會使用抽象類和什么情況你會使用接口這樣的問題。本文我們將仔細討論這些話題。 在討論它們之間的不同點之前,我們先看看抽象類...
摘要:接口的對象可以利用子類對象的向上轉型進行實例化賦值。接口文件保存在結尾的文件中,文件名使用接口名。接口相應的字節(jié)碼文件必須在與包名稱相匹配的目錄結構中。接口不能包含成員變量,除了全局常量定義。 概念 接口,在JAVA編程語言中是一個引用類型,是抽象方法的集合,接口通常以interface來聲明。一個類通過繼承接口的方式,從而來繼承接口的抽象方法。 接口中只能包含抽象方法和全局常量。 接...
摘要:抽象方法沒有方法體抽象方法權限修飾符不能為抽象方法的目的就是為了讓子類繼承重寫的,所以抽象方法不能私有,不能修飾。另外,添加默認方法不會影響函數(shù)式接口的使用。 原文:抽象類和接口的區(qū)別已經(jīng)變了 隨著JDK的不斷迭代,抽象類和接口的區(qū)別已經(jīng)有了些許改變,你是否還停留在JDK 7 的答案呢? 定義 抽象類定義通過 abstract class public abstract class A...
閱讀 922·2021-11-22 13:54
閱讀 2850·2021-09-28 09:36
閱讀 2988·2019-08-30 15:55
閱讀 1956·2019-08-30 15:44
閱讀 550·2019-08-29 12:31
閱讀 2567·2019-08-28 18:18
閱讀 1206·2019-08-26 13:58
閱讀 1392·2019-08-26 13:44