java 抽象類和介面2--什麼時候用介面什麼時候用抽象類
從生活的角度看
把程式設計對映會日常生活進行對照,那麼一個東西,抽象類表示它是什麼,介面表示它能做什麼。舉一個栗子,一個Person,他有眼睛、膚色,這些描述一個人的特徵可以定義在抽象類中,而一個人的行為如打籃球,所以這些可以定義在介面中。
另外一種解釋
介面和抽象類都能描述一般性的公有特徵。一般來說,強是關係(strong is-a relationship)清晰地描述了父子關係,應該用類模擬,比如蘋果是一種水果;而弱是關係(weak is-a relationship)是指物件具有某種屬性,適合用介面模擬,比如蘋果是可以吃的(蘋果可以拿來玩,做肥料,做科學實驗…)。
總結
表示一個事情基本功能 用抽象類。 人的鼻子 嘴巴 耳朵。
表示一個擴充套件功能,用介面。 人 抽菸 喝酒 。
相關推薦
java 抽象類和介面2--什麼時候用介面什麼時候用抽象類
從生活的角度看 把程式設計對映會日常生活進行對照,那麼一個東西,抽象類表示它是什麼,介面表示它能做什麼。舉一個栗子,一個Person,他有眼睛、膚色,這些描述一個人的特徵可以定義在抽象類中,而一個人的行為如打籃球,所以這些可以定義在介面中。 另外
初學Java——類和方法(2)繼承
修改 報告 實現 語句 現在 方式 繼承體系 調用父類 class a 1.繼承可以使你定義一個通用的類(父類),之後擴充該類為一個更加特定的類(子類)。 子類從父類中繼承可訪問的數據域和方法,還可以添加新的數據域和新方法。 語法:public class Subcla
JavaSE基礎(day16)(1)Set介面(2)Map介面(3)異常(4)File類(5)I/O流
默寫: 1.畫圖題 畫出集合框架的兩張圖。 2.程式設計題 假定已有Student類,使用List介面的引用指向實現類的物件,建立3個學生物件放入集合中,分別使用兩種方法遍歷,最後清空集合中的所有元素。 今天內容: (1)Set介面 (2)Map介面 (3)異常 (4)File類
python的類和物件2(self引數)
python的類和物件2(self引數) 1、python裡面物件的方法都會有self引數,它就相當於C++裡面的this指標;繫結方法,據說有了這個引數,Python 再也不會傻傻分不清是哪個物件在呼叫方法了,你可以認為方法中的 self 其實就是例項物件的唯一標誌。 2、__init__(self)稱
c++類和物件(2)
1:設計類就是設計型別 1)我們給這個賦予什麼合法值。2):類中包含什麼樣的函式和操作符。 3:新型別的物件該如何被建立和銷燬。4:物件的初始化和賦值。 5:物件作為函式的引數如何以值傳遞。6:誰使用此型別的物件成員。 類的成員public:公有型別成員 在關鍵詞public後面宣告:它
JavaSE基礎(day15)(1)Collection介面(2)List介面(3)Queue介面(4)Set介面
默寫: 1.簡答題 寫出String類中常用的10個方法,要求寫出方法名和功能即可。 2.簡答題 寫出正則表示式中有關數量的規則。 3.畫圖題 畫出集合框架的兩張圖。 今天內容: (1)Collection介面 (2)List介面 (3)Queue介面 (4)Set介面
《Java從入門到失業》第四章:類和物件(4.6):類路徑
4.6類路徑 4.6.1什麼是類路徑 前面我們討論過包,知道位元組碼檔案最終都會被放到和包名相匹配的樹狀結構子目錄中。例如上一節的例子: 其實類還有一種存放方式,就是可以歸檔到一個jar檔案中,jar檔案其實就是把位元
4.2Python數據類型(2)之布爾類型
lock 大學生 4.2 pre 計算機 時代 sub www 一個 返回總目錄 目錄: 1.布爾類型的概念和分類: 2.布爾類型的本質 3.布爾類型的應用 (一)布爾類型的概念和分類: (1)概念: 布爾類型(bool)就是用於判斷真假的數據類型 (2)分類:
Java設計模式 挑戰2.1-抽象類和介面的區別
參考來源:https://blog.csdn.net/chenssy/article/details/12858267 感謝原作者!! 1.語法層次 抽象類可以擁有任意範圍的成員資料,同時也可以擁有自己的非抽象方法。但是介面僅
Java中抽象類和介面的具體區別 都分別什麼時候用
學習Java已經一個月的時間了,期間經歷了從入門到放棄再到重拾信心重新奮鬥。今天的學習總結是關於Java中抽象類和介面的區別總結。 一、Java抽象類 1.抽象類必須用 abstract修飾 2.如果一個類有abstract方法,這個類一定是抽象類 3.抽象類不一定有抽象方法 4.抽象類
java介面和抽象類的區別,什麼時候該用介面什麼時候該用抽象類
相信大家在面試過程中都會被問到這個問題,語法上的區別大家都知道,但是如果面試時你只說語法上的區別估計面試官會在心裡扣你兩分。 下面說說我在使用過程中關於這兩者在設計方面的區別的一些理解: 介面大家比較熟悉一點,因為現在的MVC架構業務層規範就是先寫介面再寫實現類,介面設計的目
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)介面中不能含有靜
java基礎複習(抽象類和介面)
介面中的資料域只能是public static final,方法只能是public abstract 由於這個原因,這些修飾也可以忽略。 資料域只能是static final的原因: stackoverflow上: An interface can’t ha
舉例說明java中抽象類和介面的區別
先定義一個介面: 介面中定義了兩個方法,現在定義一個普通類實現這個介面: 這時候發現報錯了,以前只知道實現介面必須實現其中的方法,卻不知道為什麼要實現。最近才瞭解到: 如果一個類繼承了某個抽象類或者實現了某個介面都需要對其中的抽象方法進行實現,否則該類需要被宣告為
(轉)詳細解析Java中抽象類和介面的區別
原文地址:https://zhuanlan.zhihu.com/p/50989401 在Java語言中, abstract class 和interface 是支援抽象類定義的兩種機制。正是由於這兩種機制的存在,才賦予了Java強大的 面向物件能力。abstract class和interface之間在對於