抽象類和介面的使用場景介紹
語義上的區別:
首先 類描述的是 這個東西是什麼(強調所屬)?包含了靜態屬性,靜態行為 ,屬性和行為。
而介面 描述的它能做什麼事兒(強調行為)? 只是 靜態常量屬性 和 行為
abstract class的應用場合 一句話,在既需要統一的介面,又需要例項變數或預設的方法的情況下,就可以使用它。最常見的有: A. 定義了一組介面,但又不想強迫每個實現類都必須實現所有的介面。可以用abstract class定義一組方法體,甚至可以是空方法體,然後由子類選擇自己所感興趣的方法來覆蓋。 B. 某些場合下,只靠純粹的介面不能滿足類與類之間的協調,還必需類中表示狀態的變數來區別不同的關係。
其他情況下都是使用 介面。
應該這樣說,我們再開始使用的時候就是用的介面,後來實現的子類裡有些子類有共同屬性,或者相同的方法實現,所以提取出來一個抽象類,作為類和介面的中介。
相關推薦
Java中抽象類和介面的介紹及二者間的區別
介面(Interface)和抽象類(Abstract Class)是支援抽象類定義的兩種機制。 一、抽象類 在Java中被abstract關鍵字修飾的類稱為抽象類,被abstract關鍵字修飾的方法稱為抽象方法,抽象方法只有方法的宣告,沒有方法體。抽象類是用來捕捉子類的通用特性的 。它不能被例項化,只
抽象類和介面的使用場景介紹
語義上的區別: 首先 類描述的是 這個東西是什麼(強調所屬)?包含了靜態屬性,靜態行為 ,屬性和行為。 而介面 描述的它能做什麼事兒(強調行為)? 只是 靜態常量屬性 和 行為 abstract class的應用場合 一句話,在既需要統一的介面,又需要
抽象類和介面區別及應用場景
區別如下: 1.抽象類是對類的抽象(包括了屬性和對應的行為). 介面是對某一個行為動作的抽象。 2.抽象類只能單繼承,介面可以實現多繼承。 3.介面中定義的方法不能實現,即使不顯示的將方法宣告為public,他們也是 public。 抽象類中的方法可以
抽象類和介面的區別 以及選擇抽象類和介面的應用場景
介面和抽象類有什麼區別 你選擇使用介面和抽象類的依據是什麼? 介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。 抽象類表示的是,這個物件是什麼。介面表示的是,這個物件能做什麼。比如,男人,女人,這兩個類(如果是類的話……),他們的抽象類是人。說
C# 通過 Observer觀察者 設計模式 來理解 抽象類 和 介面 應用在什麼地方
什麼時候用抽象類?什麼時候用介面?怎麼理解抽象類?怎麼理解介面? 一、百度解釋抽象類和介面的區別 總而言之就是一句話:抽象類可以包含具體實現,介面只能包含定義。 實現介面時必須實現介面定義的方法等,抽象類中如果給方法加上了“abstract”,那麼這個方法也需要在繼承後實現這個
Java_抽象類和介面
Java 抽象類 在面向物件的概念中,所有的物件都是通過類來描繪的,但是反過來,並不是所有的類都是用來描繪物件的,如果一個類中沒有包含足夠的資訊來描繪一個具體的物件,這樣的類就是抽象類。 抽象類除了不能例項化物件之外,類的其它功能依然存在,成員變數、成員方法和構造
16 baseService(抽象類和介面的區別)
從語法層面而言,介面和抽象類的區別如下: 1.抽象類可以提供成員方法的實現細節,而介面中只能存在抽象方法(預設 public abstract) 2.抽象類中的成員變數可以是多種型別,而介面中
Java抽象類和介面(一)
**********************第九章 抽象類和介面************************** **************************抽象類************************** 一.why 什麼時候想到使用抽象類 需求: 矩形、三角形、
Java抽象類和介面(三)
***********************體會介面的好處******************************* 一.可維護、可擴充套件 面向介面程式設計 介面:父型別 面向父類程式設計 二.解耦 高內聚、低耦合 耦合: 類和類之間的關係... 只要類和類之間有四種關係
Java抽象類和介面(二)
***************************介面********************************* 一.why 需求一直不變的時候可以不使用介面, 需求經常發生改變推薦使用介面... 軟體產品中需求會經常改變,所以一般都要使用介面... 體現了可維護、可擴充套件的優點 二.
Java中抽象類和介面的對比分析
abstract class在Java語言中表示的是一種繼承關係,一個類只能使用一次繼承關係。但是,一個類卻可以實現多個interface。 在abstract class中可以有自己的資料成員,也可以有非abstarct的成員方法,而在interface中,只能夠有靜態的
JAVA基礎複習(三)繼承、多型、抽象類和介面
1、超類也稱為父類或者基類,次類又稱為子類或者拓展類、派生類。子類從它的父類中繼承可訪問的資料域和方法,還可以新增新資料域和新方法。 2、繼承:子類並不是父類的一個子集,子類比它的父類包含更多的資訊和方法;父類中的私有資料域在該類之外是不可訪問的;不是所有是一種關係都應該用繼承來建模,但是繼承是
Java——抽象類和介面的區別
一. 區別 1.語法層面上的區別 1)抽象類可以提供成員方法的實現細節,而介面中只能存在public abstract 方法; 2)抽象類中的成員變數可以是各種型別的,而介面中的成員變數只能是public static final型別的; 3)介面中不能含有靜
一、基礎篇--1.1Java基礎-抽象類和介面的區別
抽象類和介面的區別 抽象類和介面在設計層面的區別主要體現在:介面是對動作的抽象,抽象類是對根源、類的抽象。抽象類表示的是,這個物件是什麼,介面表示的是,這個物件可以做什麼。 比如,男人、女人是人,人是男人女人的抽象類。人可以吃東西,動物也可以吃東西,人還有各種行為,吃東西就可以定義為一種介面。 語法上具
java基礎複習(抽象類和介面)
介面中的資料域只能是public static final,方法只能是public abstract 由於這個原因,這些修飾也可以忽略。 資料域只能是static final的原因: stackoverflow上: An interface can’t ha
抽象類和介面的區別:
抽象類和介面的區別:A:成員區別 抽象類: 成員變數:可以變數,也可以常量 構造方法:有 成員方法:可以抽象,也可以非抽象 介面: 成員變數:只可以常量 成員方法:只可以抽象 B:關係區別 類與類 繼承,單繼承 類與介面 實現,單實現,多實現 介面與介面 繼承,單繼承,多繼承 C:設計理念區別 抽象類 被繼承
抽象類和介面的異同及例項解析
與具體類比較 抽象類不能直接例項化,並且對抽象類使用 new 運算子會導致 編譯時錯誤。雖然一些變數和值在編譯時的 型別可以是抽象的,但是這樣的變數和值必須或者為 null,或者含有對非抽象類的例項的 引用(此非抽象類是從抽象類派生的)。
舉例說明java中抽象類和介面的區別
先定義一個介面: 介面中定義了兩個方法,現在定義一個普通類實現這個介面: 這時候發現報錯了,以前只知道實現介面必須實現其中的方法,卻不知道為什麼要實現。最近才瞭解到: 如果一個類繼承了某個抽象類或者實現了某個介面都需要對其中的抽象方法進行實現,否則該類需要被宣告為
抽象類和介面在專案中使用的例項
抽象類和介面在專案中經常使用如果使用恰當,可以大大精簡程式碼 抽象類:指的是用abstract關鍵字修飾或者類中有抽象方法,那麼這個類就是抽象類 特點: 抽象類用關鍵字 abstract修飾 抽象類的抽象方法沒有方法體,在子類繼承父類中有抽象方法時,必須實現抽像方法
(轉)詳細解析Java中抽象類和介面的區別
原文地址:https://zhuanlan.zhihu.com/p/50989401 在Java語言中, abstract class 和interface 是支援抽象類定義的兩種機制。正是由於這兩種機制的存在,才賦予了Java強大的 面向物件能力。abstract class和interface之間在對於