1. 程式人生 > >介面和抽象類你應該知道的基礎

介面和抽象類你應該知道的基礎

JAVA中的幾句箴言:

抽象類和介面中都可以包含靜態成員變數

抽象類中可以包含靜態方法,介面內不能包含靜態方法

abstract不能例項化,只能繼承,可以有抽象成員

抽象類是對類抽象,而介面是對行為的抽象。

 介面:本身沒有任何實現,因為Java不涉及表象,而之描述public行為,所以Java介面比Java抽象類更為抽象化。Java的介面可以有public,靜態的和final的屬性。

 抽象類:不想給出定義,百度給出的定義太高深。不適合我這種小白。

1、為什麼介面內的成員只能是靜態的?

  由於介面不能例項化,非靜態成員只能通過例項呼叫,所以必須定義為static的

2、為什麼抽象類也不能被例項化,但抽象類裡面可以定義非靜態的:  

  由於子類與抽象類的關係中,子類繼承抽象類,子類例項化,首先要執行父類的構造器,有構造器就有例項化。

3、為什麼使用介面?

  介面在實際開發過程中最大好處是,你可以按照設計,先把介面寫好,然後分配大夥幹活的時候,告訴a們去用寫好的介面去實現他們的具體功能,而告訴b們,去寫那些已經寫好但是沒有具體的程式碼的介面,這樣可以提高工作效率。對了,另外介面解決了java不能多繼承的問題。

4、為什麼使用抽象類:

  抽象類為子類提煉出公共的方法,並提供一個或幾個抽象方法留給子類實現;抽象類的設計體現了模板模式的設計思想,即抽象類公共的普通方法依賴一個抽象方法,而抽象方法則推遲到子類中實現細節。

相關推薦

介面抽象應該知道基礎

JAVA中的幾句箴言: 抽象類和介面中都可以包含靜態成員變數 抽象類中可以包含靜態方法,介面內不能包含靜態方法 abstract不能例項化,只能繼承,可以有抽象成員 抽象類是對類抽象,而介面是對行為的抽象。  介面:本身沒有任何實現,因為Java不涉及表象,而之描述public行為,所以Java介面

java基礎知識1:關鍵字;介面抽象;java併發相關

true、false、null都不是關鍵字 goto、const、是保留的關鍵字 abstract continue for new switch defa

Java基礎學習之介面抽象的概念、區別及適用的場景

1.介面   介面是抽象方法的集合,一個介面只有方法的形狀而沒有方法的具體實現,介面是Java面向物件提供的一種機制。   Java語言是一種單繼承的,在類的繼承中通過實現多個介面間接實現了多繼承功能。介面的宣告: [public] interface InterfaceName{

C#基礎系列——一場風花雪月的邂逅:介面抽象

前言:最近一個認識的朋友準備轉行做程式設計,看他自己邊看視訊邊學習,挺有幹勁的。那天他問我介面和抽象類這兩個東西,他說,既然它們如此相像, 我用抽象類就能解決的問題,又整個接口出來幹嘛,這不是誤導初學者嗎。博主呵呵一笑,回想當初的自己,不也有此種疑惑麼。。。今天打算針對他的問題,結合一個實際的使用場景來說明下

Java基礎:深入理解Java的介面抽象

     對於面向物件程式設計來說,抽象是它的一大特徵之一。在Java中,可以通過兩種形式來體現OOP的抽象:介面和抽象類。這兩者有太多相似的地方,又有太多不同的地方。很多人在初學的時候會以為它們可以隨意互換使用,但是實際則不然。今天我們就一起來學習一下Java中的介面和

應該如何向面試官解釋介面抽象之間的區別?

在我的一次採訪中,我被要求解釋一個介面和一個抽象類的區別。這是我的迴應:Java介面的方法是隱式抽象的,不能有實現。Java抽象類可以具有實現預設行為的例項方法。在Java介面中宣告的變數預設為final。抽象類可能包含非最終變數。Java介面的成員預設是公共的。Java抽象

介面抽象的區別---相信看完不會再混淆了

一、引言         本文主要是由一些個人觀點和網上搜集的資料整理而成。對於各位使用面向物件程式語言的程式設計師來說,“介面”這個名詞一定不陌生,但是不知各位有沒有這樣的疑惑:介面有什麼用途?讓它和抽象類有什麼區別?能不能用抽象類代替介面呢?而且,作為程式設計師,一定經

java自動拆裝箱,介面抽象

1.Java支援的資料型別有哪些?什麼是自動拆裝箱? Java語言支援的8中基本資料型別是: byte short int long float double boolean char 自動裝箱是Java編譯器在基本資料型別和對應的物件包裝型別之間做的一個轉化。比如:把int轉化成Integ

JAVA:介面抽象的區別

1.從設計層面來說,抽象是對類的抽象,是一種模板設計 ,介面是行為的抽象,是一種行為的規範 介面 interface 抽象類 介面中所有方法都是抽象的 抽象類中可以有抽象方法和普通方法 一

介面抽象得區別

首先是基本定義 介面: 使用介面(interface),可以指定某個類必須實現哪些方法,但不需要定義這些方法的具體內容。 介面是通過 interface 關鍵字來定義的,就像定義一個標準的類一樣,但其中定義所有的方法都是空的。 介面中定義的所有方法都必須是公有,這

Java特性-介面抽象區別

抽象類是自底向上抽象出來的,介面則是自頂向下設計出來的。 抽象類是對事物本身的抽象,比如貓類,狗類就可以抽象為動物類。 介面是對行為的抽象,比如男人要吃飯,女人也要吃飯,吃飯就可以抽象為介面。 抽象類表示的是這個物件是什麼,介面表示的是這個物件能幹什麼。 所以

java介面抽象的區別

全域性變數的區別 介面中所有的全域性變數預設為 public static final,處於方法區的常量池中,且是靜態域中的成員 抽象類的全域性變數無硬性約束 方法的區別 介面 介面

Java 介面抽象可以被new麼?——順便總結內部類

轉載:https://blog.csdn.net/hackersaillen/article/details/47281549 背景:     最近有同事跟我說了他面試時遇到的問題,考官問:“介面和抽象類可以被new嘛?”。這可能不是考官的原話,但是據他表達考官大概就是這

介面抽象是否繼承了Object

我們先看一下Java的幫助文件對於Object的描述: Class Object is the root of the class hierarchy. Every class has Object as a superclass. All objects, including arrays, implem

c#介面抽象的區別

   大家都容易把這兩者搞混,我也一樣,在聽李建忠老師的設計模式時,他也老把抽象類說成介面,弄的我就更糊塗了,所以找了些網上的資料.       一、抽象類:     

介面抽象的使用上的區別選擇

    介面與抽象類的使用上的區別和選擇:       首先,對於抽象類它的作用主要用於繼承和重寫,裡面可以有普通方法,但在設計上面,通常把其派生類的共有屬性和方法抽象出來,其中所有派生類中不變的方法,在抽象類中用普通方法寫出來,而所有派生類中變化的

介面抽象的相同不同之處

共性:不斷的抽取,抽取出抽象的概念    不能建立物件(不能例項化)   區別1:與類的關係        類與介面是實現關係,一個類可以實現多個介面        類與抽象類是繼承關係,Java中的繼承是單一繼承,一個類只能有一個父類,Java中的繼承是多層繼承   區別2:成員     

如何在Java中選擇介面抽象

什麼是抽象類? 摘要意味著某些東西不是完全具體的 - 它只是一個想法或某事的要點。因此,當我們討論抽象類時,它意味著一個本身沒有具體實現的類。這只是為其他具體類建立的結構或指南。我們可以說抽象類是具體類的靈魂。這就是我們“擴充套件”抽象類的原因。抽象類應該只有那些屬性和方法,沒有它們就不能存在具體的類。

C#中的介面抽象學習

今天學習了介面和抽象類,但並沒有很好的進行整理,所以現在寫的時候,腦子裡多少有點亂亂的,先從介面開始吧。 interface 介面,規定了所有派生類的需要遵循的標準,介面定義了需要做些什麼,但是沒有具體的做法,做法的實現由派生類來做。 介面的定義使用關鍵字Interface,由於需要派生類繼承,所以

介面 抽象

抽象類有普通方法和抽象方法,普通方法可以實現方法細節,在java中叫做可以有方法體,抽象方法卻不能有方法體。而抽象類不能例項化,除此之外跟其他類沒區別。 而介面則其內部的方法全部是抽象方法, 在java中,類只能繼承一個類,後者不管是抽象類還是普通類都可以。但是可以接多個介面。 抽象類是物的抽象,介面是