Java 學習和實踐筆記(26):組合(component)的含義以及與繼承(extends)的關系

組合的兩個作用:

1)通過將父類對象作為子類的屬性

2)通過第1點的作用,實現了代碼復用。

示例代碼:

public class TestComponent {public static void main(String[] args) {Student2 s1= new Student2("jason",180,"Java");System.out.println(s1.person2.name);System.out.println(s1.person2.height);System.out.println(s1.major);}
}class Person2 {String name;int height;public void rest(){System.out.println("休息!");}
}class Student2 {Person2 person2 = new Person2();//Person2 是一個引用類型,類似于int這樣的類型聲明// person2 是一個對象、是一個變量、是一個屬性,類似于int a 里的a//new Person2()作用,就是新建了一個Person2 這個(父)類的對象//因為Person2先于Student2,所以叫它為父類String major;//專業、public void  study(){System.out.println("學習!");person2.rest();//通過person2這個對象,來使用Person2類中的方法rest()}public Student2(String name, int height, String major) { //定義一個學生的對象構造器this.person2.name = name;//通過person2這個對象,來使用Person2類中的屬性namethis.person2.height = height;//通過person2這個對象,來使用Person2類中的屬性heightthis.major = major;}
}

運行結果:、

組合比較靈活。繼承只能有一個父類,但是組合可以有多個屬性。所以,有人聲稱“組合優于繼承,開發中可以不用繼承”,但是,不建議大家走極端。
?

對于“is -a”關系建議使用繼承,“has-a”關系建議使用組合。所以這里有一個在建模時的邏輯關系的問題。
比如:上面的例子,Student is a Person這個邏輯沒問題,但是:Student has a Person就有問題了。這時候,顯然繼承關系比較合適。
再比如:筆記本和芯片的關系顯然是“has-a”關系,使用組合更好。
?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/713386.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713386.shtml
英文地址,請注明出處:http://en.pswp.cn/news/713386.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

燈塔:HTML筆記

網頁由哪些部分組成? *文字 圖片 音頻 視頻 超鏈接 程序員寫的代碼是通過瀏覽器轉換成網頁的 五大瀏覽器有哪些? *IE瀏覽器 *火狐瀏覽器(Firefox) *谷歌瀏覽器(Chrome) *Safari瀏覽器 *歐朋瀏覽器&…

NENU OJ算法2例題||搜索E

NENU OJ算法2例題 合集原文指路 算法2搜索E 1281: E001 數的劃分 題目描述 將整數n分成k份,且每份不能為空,任意兩種分法不能相同(不考慮順序)。 例如:n7,k3,下面三種分法被認為是相同的。…

【數據結構與算法】動態規劃法解題20240302

這里寫目錄標題 一、198. 打家劫舍1、動態規劃五部曲 二、213. 打家劫舍 II 一、198. 打家劫舍 你是一個專業的小偷,計劃偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間…

速盾:使用cdn后速度慢是怎么回事?

CDN(內容分發網絡)是一種通過將網站的靜態內容分布到全球各地的服務器,從而提供更快速度和更好用戶體驗的技術。然而,有時候用戶會遇到使用CDN后速度變慢的問題,下面將探討幾種可能的原因。 服務器選擇錯誤: CDN服務通…

【python】雙十一美妝數據分析可視化 [聚類分析/線性回歸/支持向量機](代碼+報告)【獨一無二】

👉博__主👈:米碼收割機 👉技__能👈:C/Python語言 👉公眾號👈:測試開發自動化【獲取源碼商業合作】 👉榮__譽👈:阿里云博客專家博主、5…

全量知識系統問題及SmartChat給出的答復 之11 三套工具之6語法解析器之4

Q30. 原Q24.問題的錯誤糾正 我剛剛檢查了 之前的問題,Q24 中有明顯的錯誤。Q24 的提問是: “請設計一個IPP( Integrated Partial Parser)解析器,能分別基于上述兩種文法規則,用于分析有關某領域的一些新聞…

【JavaSE】 P165 ~ P194 抽象方法,抽象類,接口,接口內容,多接口實現和父類繼承,多態,向上轉型,向下轉型

目錄 抽象抽象的概念抽象方法和抽象類的格式抽象方法和抽象類的使用抽象方法和抽象類的注意事項● 練習1. 寫一個父類圖形類,其中有方法,功能計算面積為抽象方法。2. 抽象類繼承。判斷對錯,沒錯的分析運行結果3. 發紅包,群內用戶類作為父類,有…

c++相對路徑與絕對路徑

參考:https://blog.csdn.net/weixin_42175509/article/details/114360938 1、獲取當前路徑:用getcwd()函數,返回值是一個指向字符串的指針 2、相對路徑用正斜杠“/” ./,表示當前路徑;…/表示當前路徑的上一級路徑;…

NX二次開發:ListingWindow窗口的應用

一、概述 在NX二次開發的學習中,瀏覽博客時發現看到[社恐貓]和[王牌飛行員_里海]這兩篇博客中寫道有關信息窗口內容的打印和將窗口內容保存為txt,個人人為在二次開發項目很有必要,因此做以下記錄。 ListingWindow信息窗口發送信息四種位置類型 設置Listi…

鴻蒙系統的開發與學習:一、安裝工具與處理報錯

前言: 鴻蒙系統的學習與記錄。 1 、使用開發工具:deveco-studio 1)這個是工具的安裝 2)這個是工具包,里面包含了 obpm,如果你裝不上這個,可以使用工具包內部的 2、安裝 官方安裝教程&#xff…

前端學習第三天-css基礎

1. CSS簡介 從HTML被發明開始,樣式就以各種形式存在。不同的瀏覽器結合它們各自的樣式語言為用戶提供頁面效果的控制。最初的HTML只包含很少的顯示屬性。 隨著HTML的成長,為了滿足頁面設計者的要求,HTML添加了很多顯示功能。但是隨著這些功能…

面經(五)南京 軟通動力 一面

注:已經有了接近一年的工作經驗 總體評價 不完全是技術面,面試經過還行,但可能是期望崗位和對方需求不太一致,感覺不太好過 面試經過 HR找你,發簡歷入庫,然后商量面試時間,發騰訊會議鏈接騰…

USB4之ASM2464PD與ASM2464PDX兼容與運用

首先在NVMe上運用: 一:ASM2464PD(現在可以做帶PD的方案) 二:ASM2464PDX 1: Application Guide- CFX card reader NVMe SSD 2:ASM2464PDX Application Guide- NVMe SSD x4 with data clone 三&#xff…

C習題003:球筐投球(一排)

題目 輸入樣例 在這里給出一組輸入。例如&#xff1a; 5 3 7 5 7 7 3 1 5 3 1 5 2 4 4 4輸出樣例 在這里給出相應的輸出。例如&#xff1a; 12 10 12 16 8代碼長度限制 16 KB 時間限制400 ms 內存限制 64 MB 棧限制 8192 KB 代碼 #include<stdio.h> int main() {int…

計算機2級考試26

一、選擇題&#xff08;本題共20道小題&#xff0c;共40分。&#xff09; 1. 表示關系x≤y≤z的c語言表達式為 A) (X<Y)&&(Y<Z) B) (X<Y)AND(Y<Z) C) (X<Y<Z) D) (X<Y)&(Y<Z) 2. 以下程序的輸出結果是 main( ) { int a12&#xff…

新一代湖倉集存儲,多模型統一架構,高效挖掘數據價值

星環科技TDH一直致力于給用戶帶來高性能、高可靠的一站式大數據基礎平臺&#xff0c;滿足對海量數據的存儲和復雜業務的處理需求。 同時在易用性方面持續深耕&#xff0c;降低用戶開發和運維成本&#xff0c;讓數據處理平民化&#xff0c;助力用戶以更便捷、高效的方式去挖掘數…

[多媒體服務器] 通過nginx搭建 rtmp/hls/dash 媒體服務器,支持點播和直播

參考&#xff1a; How To Set Up a Video Streaming Server using Nginx-RTMP on Ubuntu 20.04 | DigitalOcean 用到的工具&#xff1a; nginx&#xff0c;nginx rtmp插件&#xff0c;OBS&#xff0c;ffmpeg&#xff0c;ubuntu&#xff0c;youtube-dl Step1&#xff1a;安裝和…

jmeter如何請求訪問https接口

添加線程組http請求 新建線程組&#xff0c;添加http請求 填入協議&#xff0c;ip&#xff0c;端口&#xff0c;請求類型&#xff0c;路徑&#xff0c;以及請求參數&#xff0c;查看結果樹等。 然后最關鍵的一步來了。 導入證書 步驟&#xff1a;獲取證書&#xff0c;重新生…

基于SSM的高校競賽和考級查詢系統(有報告)。Javaee項目。ssm項目。

演示視頻&#xff1a; 基于SSM的高校競賽和考級查詢系統&#xff08;有報告&#xff09;。Javaee項目。ssm項目。 項目介紹&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三層體系結構&#xff0c;通過Sp…