Java8基礎之super關鍵字

相信學過Java語言的小伙伴都熟悉super這個關鍵字,接下來,我們來研究他的一些基礎用法吧。

定義名字為Father的類

package superkeyworld;public class Father {public String name;public int age;public Father() {}public Father(String name, int age) {this.name = name;this.age = age;System.out.println("父類構造方法調用了!");}public void sayHello() {System.out.println("你好,我是"+name);}
}

super關鍵字可以調用父類構造方法

當父類沒有無參構造方法的時候,子類實例化的時候,必須顯示調用父類的構造方法。

package superkeyworld;public class Child extends Father {public Child(String name, int age) {// 必須位于第一行。super(name, age);System.out.println("子類構造方法執行了");}
}

實例化Chlid類,結果如下:

父類構造方法調用了!
子類構造方法執行了!

為什么非得放在第一行?

super()之所以存在,是有很重要的原因的!因為子類與父類之間是繼承關系,而繼承就意味著得到父類中所有的成員變量和方法。既然能夠得到父類的這些成員,也就意味著子類可以訪問父類的方法和成員變量(當然,得到不意味著就可以任意使用,使用的前提是必須是有相應的訪問權限) ,如果子類在使用父類成員的時候,父類內的成員變量沒有得到正確的初始化,那么就會發生意想不到的錯誤,所以問題就出現在了這里,如何保證父類成員是安全的呢? 這就得保證父類得到了正確的初始化,而父類正確的初始化就離不開父類的構造函數,super存在的意義也正是如此。在子類的構造函數,如果沒有顯式使用super(),并且第一行沒有使用this()調用子類其他的構造函數,那么編譯器就會自動在第一行補齊super()來調用父類的默認構造函數,如果父類沒有默認的構造函數就會報錯。
super()在第一行的原因就是: 子類有可能訪問了父類的成員變量或者方法,比如在構造函數中使用父類的成員函數或者變量,在代碼塊中使用了父類的方法等, 所以為保證在子類可以訪問父類成員的正確性,所以要先完成對父類的初始化。

super關鍵字可以調用父類成員方法和成員變量(非私有)

super關鍵字可以用來訪問父類的成員方法或變量,當子類成員變量或方法與父類有相同的名字時也會覆蓋父類的成員變量或方法,這個時候要想訪問父類的成員變量或方法只能通過super關鍵字來訪問,子類方法中的super.方法名()不需要位于第一行。

package superkeyworld;public class Child extends Father {public Child(String name, int age) {// 必須位于第一行。super(name, age);System.out.println("子類構造方法執行了!");}public void sayHello() {super.sayHello();System.out.println("父親的年齡:"+super.age);System.out.println("調用父類的方法,獲取了父類的屬性!");}
}

調用子類的sayHello方法結果如下:

你好,我是feige
父親的年齡:23
調用父類的方法,獲取了父類的屬性!

轉載于:https://www.cnblogs.com/feiqiangsheng/p/11106125.html

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

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

相關文章

canpro腳本_AE/PR腳本-創建編輯導入導出專業字幕腳本 Subtitle Pro 2.8.0 + 使用教程...

Subtitle Pro是一個專業的插件,可讓您直接在After Effects和Premiere Pro中為視頻創建字幕。可將字幕快速的導入或導出。您可以導入.srt文件或任何字幕格式,也可以編寫文本。一鍵翻譯單詞,一鍵同步時間。不僅是簡單的字幕文字,還可…

【概率論】1-2:計數方法(Counting Methods)

title: 【概率論】1-2:計數方法(Counting Methods) categories: MathematicProbability keywords:Counting Methods技術方法Combinatorial Methods組合方法Multiplication乘法法則Permutations排列Stirling’s Formula斯特林公式 toc: true date: 2018-01-25 10:35:46Abstract:…

Python字符編碼詳解

Python字符編碼詳解 http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html本文簡單介紹了各種常用的字符編碼的特點,并介紹了在python2.x中如何與編碼問題作戰 :) 請注意本文關于Python的內容僅適用于2.x,3.x中str和…

使用sql服務器發送賀卡_創建和發送免費電子賀卡的最佳網站

使用sql服務器發送賀卡With the holiday season upon us, it’s time to pull out the holiday card list and get writing. However, how would you like to save some money this year and also help save the environment? 隨著假期的到來,是時候抽出節日賀卡清…

職稱申報評審管理系統_《四川省職稱評審管理暫行辦法》出臺

我省將探索實行職稱評審電子證書,電子證書與紙質證書具有同等效力。12月29日,記者從省人社廳了解到,我省近日出臺《四川省職稱評審管理暫行辦法》,從職稱評審總體要求、評審主體、申報程序、組織實施、優化服務、強化監管等方面提…

WordCount--統計輸入文件的字符數、行數、單詞數(java)--初級功能

碼云地址: https://gitee.com/YuRenDaZ/WordCount 個人PSP表格: PSP2.1 PSP階段 預估耗時 (分鐘) 實際耗時 (分鐘) Planning 計劃 180 120 Estimate 估計這個任務需要多少時間 180 120 D…

網頁的驗證碼

1.首先可以寫一個產生隨機驗證碼的aspx文件,如下產生四位數字: private void Page_Load(object sender, System.EventArgs e) { this.CreateCheckCodeImage(GenerateCheckCode()); } private string GenerateCheckCode() { …

榮耀9igoogle模式_iGoogle個性化主頁的6種替代方法

榮耀9igoogle模式iGoogle has less than a year to go before it’s shut down for good on November 1, 2013. While Google seems to think that iGoogle isn’t necessary anymore, there are other services waiting to take its place. iGoogle距離其2013年11月1日永久關閉…

華為堡壘機_安恒信息成為“華為云優秀嚴選合作伙伴”,攜手保障“云上”資產安全訪問...

加快5G持續創新能力,為云計算行業注入新動能。近日,以“智者?同行?共贏”為主題的2020華為云ISV(嚴選)合作伙伴大會在杭州隆重舉行。上百位華為云合作伙伴、行業大咖等專業人士齊聚一堂,探討云計算產業熱門話題。作為華為云重要的生態合作伙…

zip4j實現多線程壓縮

使用的jar包:zip4j_1.3.2.jar 基本功能: 針對ZIP壓縮文件創建、添加、分卷、更新和移除文件 (讀寫有密碼保護的Zip文件) (支持AES 128/256算法加密) (支持標準Zip算法加密) (支持zip64格式) (支持Store(僅打包,默認不壓縮,…

非三星手機無法登錄三星賬號_如何解決所有三星手機的煩惱

非三星手機無法登錄三星賬號Samsung is the biggest manufacturer of Android phones in the world, but that doesn’t mean these handsets are perfect out of the box. In fact, most of these phones have several annoyances initially—here’s how to fix many of thes…

設置單元格填充方式_單元格的選擇及設置單元格格式

數據輸入完畢,接下來可以設置字體、對齊方式、添加邊框和底紋等方式設置單元格格式,從而美化工作表。要對單元格進行設置,首先要選中單元格。選擇單元格選擇單元格是指在工作表中確定活動單元格以便在單元格中進行輸入、修改、設置和刪除等操…

Recover Binary Search Tree

Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure. Note: A solution using O(n) space is pretty straight forward. Could you devise a constant space solution? 要求找到BST中放錯位置的兩個節點. …

springboot三種過濾功能的使用與比較

若要實現對請求的過濾,有三種方式可供選擇:filter、interceptort和aop。本文主要討論三種攔截器的使用場景與使用方式。 下文中的舉例功能是計算每個請求的從開始到結束的時間,例子來源是慕課網。 一、filter 特點:可以獲取原始的…

后綴的形容詞_構詞法(18)構成形容詞的常見后綴 3

即時練習一、按要求改寫下列單詞。1. Japan →___________ adj. 日本(人)的2. Canton →_________ adj. 廣東(人)的3. Vietnam →__________ adj. 越南(人)的4. Europe →__________ adj. 歐洲(人)的5. India → ________ adj. 印度(人)的6. Africa →_______ adj. 非洲(人)的7…

CentOS 桌面啟動無登錄界面

最近VMWare下搞了2個CentOS 32bit虛擬機, 裝了些軟件之后,都遇到開機無法顯示登錄界面, 僅能看見桌面背景圖的情況。 以下是我搜索很久匯總的方法。 嘗試按 ctrl alt F3(快捷鍵可能有所不同), 由桌面模式進入命令行模式。 直接 startx 報錯&#xf…

批量刪除推文_如何搜索(和刪除)您的舊推文

批量刪除推文“The internet never forgets” is an aphorism that isn’t entirely true, but it’s worth thinking about whenever you post to social media. If you think your Twitter profile needs a bit of a scrub, here’s how to search and delete those old twee…

[USACO13JAN] Cow Lineup (單調隊列,尺取法)

題目鏈接 Solution 尺取法板子,算是復習一波. 題中說最多刪除 \(k\) 種,那么其實就是找一個顏色種類最多為 \(k1\) 的區間; 統計一下其中最多的顏色出現次數. 然后直接尺取法,然后每次對于 \(col[r]\) 進行統計,時間復雜度 \(O(n)\) . Code #include<bits/stdc.h> using …

智能記憶功能nest_如何設置和安裝Nest Protect智能煙霧報警器

智能記憶功能nestIf you want to add a bit more convenience and safety to your home’s smoke alarm setup, the Nest Protect comes with a handful of great features to make that a reality. Here’s how to set it up and what all you can do with it. 如果您想為您的…

網格自適應_ANSYS 非線性自適應(NLAD)網格劃分及應用舉例

文章來源&#xff1a;安世亞太官方訂閱號&#xff08;搜索&#xff1a;Peraglobal&#xff09;在復雜的結構設計分析中&#xff0c;通常很難確定在高應力區域中是否生成適當的細化網格。在做非線性大應變分析仿真時&#xff0c;可能由于單元變形過大&#xff0c;導致網格畸變&a…