日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java is a like a_JAVA基础——is-a 、have-a、和 like-a的区别

發布時間:2025/3/12 编程问答 10 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java is a like a_JAVA基础——is-a 、have-a、和 like-a的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、is-a,has-a,like-a是什么

在面向對象設計的領域里,有若干種設計思路,主要有如下三種:

is-a、has-a、like-a

java中在類、接口、抽象類中有很多體現。

了解java看這里:什么是Java

了解類和對象看這里:類、對象到底有什么秘密

了解接口和抽象類看這里:接口和抽象類有什么區別

2、is-a是什么

is-a,顧名思義,是一個,代表繼承關系。

如果A is-a B,那么B就是A的父類。

一個類完全包含另一個類的所有屬性及行為。

例如PC機是計算機,工作站也是計算機,PC機和工作站是兩種不同類型的計算機,但都繼承了計算機的共同特性。因此在用Java語言實現時,應該將PC機和工作站定義成兩種類,均繼承計算機類。

了解更多繼承看這里:java類的繼承有什么意義

3、has-a是什么

has-a,顧名思義,有一個,代表從屬關系。

如果A has a B,那么B就是A的組成部分。

同一種類的對象,通過它們的屬性的不同值來區別。

例如一臺PC機的操作系統是Windows,另一臺PC機的操作系統是Linux。操作系統是PC機的一個成員變量,根據這一成員變量的不同值,可以區分不同的PC機對象。

4、 like-a是什么

like-a,顧名思義,像一個,代表組合關系。

如果A like a B,那么B就是A的接口。

新類型有老類型的接口,但還包含其他函數,所以不能說它們完全相同。

例如一臺手機可以說是一個微型計算機,但是手機的通訊功能顯然不是計算機具備的行為,所以手機繼承了計算機的特性,同時需要實現通訊功能,而通訊功能需要作為單獨接口,而不是計算機的行為。

5、is-a,has-a,like-a如何應用

如果你確定兩件對象之間是is-a的關系,那么此時你應該使用繼承;比如菱形、圓形和方形都是形狀的一種,那么他們都應該從形狀類繼承。

如果你確定兩件對象之間是has-a的關系,那么此時你應該使用聚合;比如電腦是由顯示器、CPU、硬盤等組成的,那么你應該把顯示器、CPU、硬盤這些類聚合成電腦類。

如果你確定兩件對象之間是like-a的關系,那么此時你應該使用組合;比如空調繼承于制冷機,但它同時有加熱功能,那么你應該把讓空調繼承制冷機類,并實現加熱接口。

總結

以上是生活随笔為你收集整理的java is a like a_JAVA基础——is-a 、have-a、和 like-a的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。