多態和繼承復習

與其明天開始,不如現在行動!

文章目錄

  • 多態
    • 多態成立的條件
    • 細節
  • 繼承
  • 💎總結


多態

多態成立的條件

  1. 存在繼承關系或者實現關系
  2. 子類重寫父類的方法
  3. 父類引用指向子類對象

細節

通過父類的引用調用子類的對象

Animal animal = new Dog();
  1. animal是向上轉型的(隱式轉換)

  2. 通過animal調用父類和子類都有的成員變量時,調用的是父類的成員變量

  3. 不能調用子類獨有的成員變量,編譯時期就會報錯

  4. 通過animal調用父類和子類都有的成員方法時,調用的是子類的成員變量

  5. 子類沒有重寫父類的方法,就會調用父類的方法

  6. 子類引用指向父類對象時向下轉型,此時必須強制轉換為子類

    School s = new Classes();
    Classes c = (Classes) s;//不能是以下這種轉換,運行會報錯
    Classes c = (Classes) new School(); //?
    

繼承

  1. 在子類可以增加域、增加方法或者覆蓋超類方法,但是絕對不能刪除繼承的任何域和方法
  2. 父類沒有無參構造并且子類構造沒有顯式調用父類其它構造,編譯器會報錯
  3. Java不支持多繼承
  4. 一個類聲明了final,其它的類就不能繼承這個類,其中的方法也會被聲明為final,但是變量不會。
  5. 只能在繼承層次內進行類型轉換
  6. 在將超類轉換子類之前,應該使用instanceof進行檢查

抽象

  1. 類即使不含有抽象方法,也可以設置為抽象類

  2. 抽象類不能實例化,但是可以引用一個非抽象的子類對象的實例

    // Person抽象,Student繼承Person類而且不抽象
    Person p = new Student();
    

修飾符

  1. public—對所有類可見
  2. protected—對本包和所有子類可見
  3. 默認(不需要修飾符)—對本包可見
  4. private—僅本類可見

對象包裝

  1. Integer
  2. 對象包裝類是不可變的,一旦構造了對象包裝類,就不允許更改包裝在其中的值
  3. 對象包裝器是final的,因此不能定義他們的子類
  4. 如果在一個條件表達式中同時使用Integer和Double,Integer就會自動拆箱提升為Double,再裝箱為Double
  5. 裝箱和拆箱是編譯器執行的,而不是虛擬機

💎總結

本文中若是有出現的錯誤請在評論區或者私信指出,我再進行改正優化,如果文章對你有所幫助,請給博主一個寶貴的三連,感謝大家😘!!!


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

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

相關文章

C語言搭建項目-學生管理系統(非鏈表)

、 目錄 搭建offer.h文件 搭建offer.c中的main函數 密碼登入系統 搭建my_oferr.c中的接口函數 使用幫助菜單接口函數 增加學生信息接口函數 查詢學生信息接口函數 刪除學生信息接口函數 保存學生信息接口 打開文件fopen 關閉文件fclose 判斷是否保存文件fwrite 退出執行文件…

C++:const類型數據的修改問題

在C語言中const類型的數據嚴格意義上可以修改: const int a1; int*b&a; *b2;不同于C語言,C中指針類型是要嚴格對應的,對const類型的數據必須使用const類型的指針進行接收,從而避免修改; 但問題是c中同樣支持指針的…

年度工作總結怎么寫?掌握這些年終總結萬能公式,讓你的報告出彩無比!

光陰似箭,日月如梭,時間總是不疾不徐地向前奔去,轉眼就來到了2023年的最后一個月,12月一到,上班族和打工人又要開始忙活工作總結的事情~ 工作總結,不僅是一年工作的回顧,更是未來規劃的起點。你…

Springboot中的RestTemplate

Springboot中的RestTemplate 在Spring Boot應用程序中,RestTemplate是一個用于進行HTTP請求的強大工具。通常用于與RESTful API進行交互、調用其他服務或執行HTTP請求。它提供了各種方法來發送HTTP請求(如GET、POST、PUT、DELETE等)&#xf…

cuda lib 線程安全的要義

1, 概述 cuda lib 線程安全的幾個多線程的情景: 單卡多線程; 多卡多線程-每卡單線程; 多卡多線程-每卡多線程; 需要考慮的問題: 每個 cublasHandle_t 只能有一個stream么? 每個cusolverHandle_t 只能有一…

python3.5安裝教程及環境配置,python3.7.2安裝與配置

大家好,小編來為大家解答以下問題,python3.5安裝教程及環境配置,python3.7.2安裝與配置,現在讓我們一起來看看吧! python 從爬蟲開始(一) Python 簡介 首先簡介一下Python和爬蟲的關系與概念&am…

Android Studio的代碼筆記--IntentService學習

IntentService學習 IntentService常規用法清單注冊服務服務內容開啟服務 IntentService 一個 HandlerThread工作線程,通過Handler實現把消息加入消息隊列中等待執行,通過傳遞的intent在onHandleIntent中處理任務。(多次調用會按順序執行事件…

Spring Cloud Alibaba實踐 --Sentinel

sentinel簡介 Sentinel的官方標題是:分布式系統的流量防衛兵。從名字上來看,很容易就能猜到它是用來作服務穩定性保障的。對于服務穩定性保障組件,如果熟悉Spring Cloud的用戶,第一反應應該就是Hystrix。但是比較可惜的是Netflix…

三防平板|手持終端PDA|8寸/10寸工業三防平板電腦主板方案定制

近年來,隨著科技的快速發展,三防平板成為了各行各業中不可或缺的工具。三防平板采用IP67級別的防護設計,通過了多項測試標準,如國標和美標,具備防水、防摔、防塵、防撞、防震、防跌落以及防鹽霧等多重防護功能。因此&a…

JavaScript 簡單理解原型和創建實例時 new 操作符的執行操作

function Person(){// 構造函數// 當函數創建,prototype 屬性指向一個原型對象時,在默認情況下,// 這個原型對象將會獲得一個 constructor 屬性,這個屬性是一個指針,指向 prototype 所在的函數對象。 } // 為原型對象添…

HarmonyOS應用開發工具DevEco Studio安裝與使用

語雀知識庫地址:語雀HarmonyOS知識庫 飛書知識庫地址:飛書HarmonyOS知識庫 知識庫內容逐步完善中… 工欲善其事必先利其器,要編寫HarmonyOS應用就需要用到官方提供的IDE工具來編寫相應的代碼。 在鴻蒙開發者官網,其提供了官方的開…

基于Java醫院掛號管理系統

基于Java醫院掛號管理系統 功能需求 1、患者信息管理:系統需要提供患者的基本信息錄入功能,包括姓名、性別、年齡、聯系方式等。此外,系統還應支持對患者信息進行修改、查詢和刪除的操作。 2、掛號管理:系統需要提供掛號功能&a…

高效的多維空間點索引算法——GeoHash

一、Geohash 算法簡介 GeoHash是空間索引的一種方式,其基本原理是將地球理解為一個二維平面,通過把二維的空間經緯度數據編碼為一個字符串,可以把平面遞歸分解成更小的子塊,每個子塊在一定經緯度范圍內擁有相同的編碼。以GeoHash方…

springboot 極簡案例

安裝idea File -> New Project 選擇依賴 創建controller文件 輸入controller類名 輸入代碼 運行項目 訪問 localhost:8080/hello/boot package com.example.demo;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.…

數據庫對象介紹與實踐:視圖、函數、存儲過程、觸發器和物化視圖

文章目錄 一、視圖(View)1、概念2、基本操作1)創建視圖2)修改視圖3)刪除視圖4)使用視圖 3、使用場景4、實踐 二、函數(Function)1、概念2、基本操作1)創建函數2&#xff…

粵能環保亮相迪拜COP28,智能技術鑄就運河城市可持續未來

在全球應對氣候變化的重要會議——迪拜COP28大會上,運河城市面臨的獨特環境挑戰引起了廣泛關注。隨著城市化進程的加快,運河城市在處理固體廢物、減少溫室氣體排放以及維持水資源安全方面面臨著嚴峻考驗。智能垃圾分類作為應對這些挑戰的有效途徑&#x…

一些系統日常運維命令和語句

一、前言 記錄一些日常系統運維的命令和語句 二、linux命令與語句 1、linux查看各目錄使用磁盤情況 du -h /home home為目錄 du -h /home 2.查看內存使用情況 free -h 3、查看進程和CPU使用情況 top top 三、數據庫語句 1、統計mysql數據庫表數量 SELECT COUNT(*) A…

被動副業機賺錢項目教程,Docker一鍵安裝教程

被動副業機賺錢項目教程,Docker一鍵安裝教程 Docker一鍵運行 軟件下載 視頻教程 /opt/wxedge_storage 路徑換成你設備里面的路徑即可,其余參數不用變, 鏡像名為onething1/wxedge 更多安裝說明,可參考官方文檔:容器魔…

【算法每日一練]-結構優化(保姆級教程 篇4 樹狀數組,線段樹,分塊模板篇)

目錄 分塊 分塊算法步驟: 樹狀數組 樹狀數組步驟: 線段樹點更新 點更新步驟: 線段樹區間更新 區間更新步驟: 不同于倍增和前綴和與差分序列。 前綴和處理不更新的區間和 差分處理離線的區間更新問題 倍增處理離線的區間…

C++的繼承語法

在面向對象編程中,繼承是一種強大的機制,允許一個類(子類)從另一個類(父類)繼承屬性和方法。C是一種支持面向對象編程的編程語言,通過其靈活而強大的繼承語法,開發者可以構建更加模塊…