程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 類的繼承-繼承問題中的Has_A和Is_A的關系到底是怎麼樣的?

類的繼承-繼承問題中的Has_A和Is_A的關系到底是怎麼樣的?

編輯:編程綜合問答
繼承問題中的Has_A和Is_A的關系到底是怎麼樣的?

新手剛學java,還不是很懂。想問圖中a[1] 為什麼不能用bark(),語錄3怎麼錯了?語句6運行為什麼會出錯?圖片

最佳回答:


IS--A基於類繼承或接口實現,IS-A是表達這句話的一種方式:“這個東西是那個東西的一種”。例如:野馬是一種馬。(是一個)
HAS-A關系是基於用法(即引用)而不是繼承。換句話說,如果類A中的代碼具有對類B實例的引用,則“類A HAS-A類B”。例如:馬有缰繩。(有一個)

“is-a”代表的是類之間的繼承關系,比如PC機是計算機,工作站也是計算機。PC機和工作站是兩種不同類型的計算機,但都繼承了計算機的共同特性。因此在用Java語言實現時,應該將PC機和工作站定義成兩種類,均繼承計算機類。
“has -a”代表的是對象和它的成員的從屬關系。同一種類的對象,通過它們的屬性的不同值來區別。比如一台PC機的操作系統是Windows,另一台PC機的操作系統是Linux。操作系統是PC機的一個成員變量,根據這一成員變量的不同值,可以區分不同的PC機對象。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved