添磚Java之路(其八)——繼承,final關鍵字

目錄

繼承:

super關鍵字:

方法重寫:

繼承特點:

繼承構造方法:

final關鍵字:


繼承:

意義:讓類于類之間產生父類于子類的關系,子類可以直接使用父類中的非私有成員(包括方法與成員變量)? 。

extends關鍵字就是定義聲明父類。
格式:public class 子類 extends 父類。
?

對于基礎的我就不贅述了,我們直接講一些實用一點的操作。

super關鍵字:


舉個例子

class Fu{int num=10;
}class Zi extends Fu
{int num=20;public void Fuc(){System.out.println(num);}
}public static void main(String[] args) {Zi z1=new Zi();z1.Fuc();}

這里面的主方法會打印什么呢?

如果我們想打印父類里的10我們需要用到super

結果就會變為10

可見super可以用來區分父子類里面的相同成員。


方法重寫:


這里的方法重寫與方法重載不一樣喲!
當字父子類出現完全一摸一樣的方法時, 在創建子類對象調用方法時會優先調用子類的方法的邏輯。這其實就是子類的方法對父類的方法進行了方法重寫。且我們通過@override識別方法重寫。
如:父子類都有Fuc方法
?

class Fu{int num=10;public void Fuc(){System.out.println("666");}
}class Zi extends Fu
{int num=20;@Override//如果這沒報錯就是方法重寫public void Fuc(){System.out.println(555);}
}public static void main(String[] args) {Zi z1=new Zi();z1.Fuc();}

打印的是555

那我們怎么調用到父類的方法呢,就是用super
?

class Zi extends Fu
{int num=20;@Overridepublic void Fuc(){super.Fuc();System.out.println(555);}
}

兩個方法都打印了。
其實方法重寫作用就是我們對父類方法的修改和增強。
tip:私有的父類不能重寫,子類在重寫時訪問權限一定要大于等于父類的方法。



繼承特點:


Java繼承只支持單繼承,不支持多繼承,但支持多層繼承。

單繼承,多繼承:就是只能繼承一個父類,不能繼承多個類。
多層繼承就像這個圖一樣:

繼承構造方法:


構造方法不支持繼承,所以構造方法需要自己寫,子類在初始化之前需要對父類進行初始化,而且所有的類構造方法中有隱藏了一句supper()代碼,這是用來調用父類的無參構造。
?

我們先簡單理解一下super();

class Fu{int a;int b;public Fu() {}
}class Zi extends Fu
{int c;int d;public Zi() {}public  void Func(){System.out.println(""+a+b+c+d);}
}public static void main(String[] args) {Zi z1=new Zi();z1.Func();}

這次會打印什么呢?

可見他將abcd全部都初始化了,就證明了調用了子父類的無參構造。
?

那為什么說所有類都有super()呢?

其實所有的類,直接或間接的繼承了object類,這里不多說,但是可以證明的是每個類都有除本身外其他的一些方法如:

final關鍵字:


對于final關鍵字其實就感覺像是c/c++里的const
特性:
1.修飾方法就表明是最終方法,該方法不能被重寫。
2.修飾類就表明是最終類,該類不能被繼承。
3.修飾變量說明是常量,不能再次被賦值(類似于const修飾的變量)。

tip:final修飾成員變量時不能被修飾默認值,說明就被修飾的變量一定要初始化,要么直接聲明定義在一起,要么在構造方法里初始化。


final修飾的規范:全用大寫,用下劃線來分割單詞如:MAX_NUM

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

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

相關文章

Seal^_^【送書活動第4期】——《Web滲透測試技術》

Seal^_^【送書活動第4期】——《Web滲透測試技術》 一、參與方式二、本期推薦圖書2.1 前 言2.2 關于本書2.3 本書讀者2.4 圖書簡介2.5 作者薦語2.6 編輯推薦2.7 目 錄 三、正版購買 掌握Web滲透測試技術,提高Web應用安全性。 一、參與方式 1、關注博主的賬號。 2、點…

目標檢測 yolov8 pth ==> onnx

目標檢測 yolov8 pth ==> onnx 1.安裝相關 pip install onnxruntime-gpu==1.14.0 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install onnxsim -i https://mirror.baidu.com/pypi/simple2.創建轉化工具 注意相關: 1、修改需要轉換的模型路徑 2、修改類型文件 3…

leetcode22 括號生成-組合型回溯

題目 數字 n 代表生成括號的對數,請你設計一個函數,用于能夠生成所有可能的并且 有效的 括號組合。 示例 輸入:n 3 輸出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”] 解析 func generateParenthesis(n int) …

Linux下Code_Aster源碼編譯安裝及使用

目錄 軟件介紹 基本依賴 其它依賴 一、源碼下載 二、解壓縮 三、編譯安裝 四、算例運行 軟件介紹 Code_aster為法國電力集團(EDF)自1989年起開始研發的通用結構和熱力耦合有限元仿真軟件。Code_aster可用于力學、熱學和聲學等物理現象的仿真分析&…

CVPR2022人臉識別Partial FC論文及代碼學習筆記

論文鏈接:https://openaccess.thecvf.com/content/CVPR2022/papers/An_Killing_Two_Birds_With_One_Stone_Efficient_and_Robust_Training_CVPR_2022_paper.pdf 代碼鏈接:insightface/recognition/arcface_torch at master deepinsight/insightface G…

DeepLab V3+: 引入可分離卷積與Decoder網絡

文章目錄 摘要引入深度可分離卷積普通卷積深度卷積,Depthwise點卷積Introduction & Related WorkMethodsEncoder-Decoder with Atrous ConvolutionModified Aligned Xception實驗結果Decoder部分的消融實驗ResNet-101作為backbone

基于lidar的多目標跟蹤

文章目錄 基本流程編譯過程注意事項基本流程 基于雷達點云的目標追蹤主要包括以下幾個步驟: 點云預處理: 濾除噪點和無效點(如NaN值)進行平面分割,提取地面點云對剩余的點云進行聚類,得到可能的目標點云目標檢測 對聚類后的點云進行分析,判斷是否為有效目標可以利用目標的尺寸…

怎么轉換音頻?看這3款音頻轉換器

隨著數字媒體的發展,音頻文件在我們的日常生活中占據了越來越重要的地位。有時候在不同的應用場景里,無論是音樂、語音還是其他類型的音頻內容,我們都需要對其進行轉換以滿足不同的需求。 本文將為您介紹3款常用的音頻轉換器,幫助…

如何讓Linux崩潰?

如何使 Linux 系統崩潰 警告 下面的代碼行是 Bash shell 的一個簡短而甜蜜的 fork 炸彈。分叉炸彈之所以有效,是因為它能夠產生無限數量的進程。最終,Linux無法處理所有這些,并且會崩潰。 fork 炸彈的一大優點是你不需要 root 權限即可執行它…

Springboot+mybatis-plus+dynamic-datasource+繼承DynamicRoutingDataSource切換數據源

Springbootmybatis-plusdynamic-datasource繼承DynamicRoutingDataSource切換數據源 背景 最近公司要求支持saas,實現動態切換庫的操作,默認會加載主租戶的數據源,其他租戶數據源在使用過程中自動創建加入。 解決問題 1.通過請求中設置租…

數據可視化訓練第7天(json文件讀取國家人口數據,找出前10和后10)

數據 https://restcountries.com/v3.1/all;建議下載下來,并不是很大 import numpy as np import matplotlib.pyplot as plt import requests import json #由于訪問url過于慢;將數據下載到本地是json數據 #urlhttps://restcountries.com/v3…

MATLAB蟻群算法求解帶時間窗的旅行商TSPTW問題代碼實例

MATLAB蟻群算法求解帶時間窗的旅行商TSPTW問題代碼實例 蟻群算法編程求解TSPTW問題實例: 在經緯度范圍為(121, 43)到(123, 45)的矩形區域內,散布著1個商家(編號1)和25個顧客點(編號為226),各個…

前端工程化實踐:Monorepo與Lerna管理

前端工程化實踐中,Monorepo(單倉庫)管理和Lerna是兩種流行的方式,用于大型項目或組件庫的組織和版本管理。 2500G計算機入門到高級架構師開發資料超級大禮包免費送! Monorepo簡介 Monorepo(單倉庫&#…

web入門練手案例(二)

下面是一下web入門案例和實現的代碼,帶有部分注釋,倘若代碼中有任何問題或疑問,歡迎留言交流~ 數字變色Logo 案例描述 “Logo”是“商標”的英文說法,是企業最基本的視覺識別形象,通過商標的推廣可以讓消費者了解企…

第一個Rust程序

在安裝好Rust以后,我們就可以編寫程序了。 首先,我們執行下面的命令,盡量讓你的rust版本和我的版本相同,或者比我的版本大。 zhangdapengzhangdapeng:~$ cargo --version cargo 1.78.0 (54d8815d0 2024-03-26) zhangdapengzhangd…

C語言(指針)2

Hi~!這里是奮斗的小羊,很榮幸各位能閱讀我的文章,誠請評論指點,關注收藏,歡迎歡迎~~ 💥個人主頁:小羊在奮斗 💥所屬專欄:C語言 本系列文章為個人學習筆記&#x…

聽說SOLIDWORKS科研版可以節約研發成本?

近幾年來,政府越來越重視科研帶動產業,績效優良的產業技術研究院對于國家和地區的學術成果轉化、技術創新、產業發展等具有不可忽視的促進和帶動作用。研究院會承擔眾多新產業的基礎研究工作,而常規的基礎研究需要長期的積累,每個…

JAVA畢業設計141—基于Java+Springboot+Vue的物業管理系統(源代碼+數據庫)

畢設所有選題: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootVue的物業管理系統(源代碼數據庫)141 一、系統介紹 本項目前后端分離,分為管理員、員工、用戶三種角色(角色權限可自行分配) 1、用戶: …

Nginx詳解:高性能HTTP和反向代理服務器

Nginx詳解:高性能HTTP和反向代理服務器 一、引言 Nginx(發音為“engine x”)是一個開源的高性能HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP代理服務器。由于其出色的性能和穩定性,Nginx已經成為互聯網上最受歡迎的…

asp.net結課作業中遇到的問題解決4

目錄 1、vs2019每次運行一次項目之后,樣式表的格式就算在vs2019上改變了,在瀏覽器中顯示的還是以前的樣式,所以應該如何修改 2、如何實現選擇下拉框之后,顯示所選擇的這個類型的書籍的名稱 3、如何實現點擊首頁顯示的書籍&#…