java 子類繼承父類

為什么需要繼承

我現在要有兩個類一個? 一個是小學生,一個是大學生

代碼


小學生
package b;
public class encapsulatio{public String name;public int age;public double score;public void setscore (double score) {this.score=score;}public void testing() {System.out.println("小學生"+name+"正在準備考小學數學");}public void showinfo() {System.out.println("pupil name"+name+"age"+age+"score"+score);}}
大學生
package b;public class graduate {public String name;public int age;public double score;public void setscore (double score) {this.score=score;}public void testing() {System.out.println("University student"+name+"正在準備考小學數學");}public void showinfo() {System.out.println("pupil name"+name+"age"+age+"score"+score);}
}

你會發現,這兩個類實現的方法沒什么不同,

我在主類中

package b;public class main_ {public static void main(String[] args) {encapsulatio e=new encapsulatio() ;e.name="jacl";e.setscore(10);e.showinfo();}
}

看到了有這個小學生的

那么大學生

	encapsulatio e=new encapsulatio() ;e.name="jacl";e.setscore(10);e.showinfo();graduate a=new graduate() ;a.name="jacl";a.setscore(10);a.showinfo();

這樣就很麻煩了那么繼承就出馬了

繼承的細節問題

子類能夠繼承所有屬性和方法,但是私有屬性和方法不能在子類直接訪問,通過公共方法訪問

但可以間接訪問,私有屬性和方法不能直接在子類中。要通過公有方法訪問

我先創建了主類。主類中有公有和私有屬性和方法

package b;public class father_ {//father class//4attributepublic int n1=100;protected int n2=200;int n3=400;public  father_() {//無參構造器System.out.println("base(....");}public void test100() {System.out.println("test100");}protected void test200() {System.out.println("test200");}void test300() {System.out.println("test300");}private void test400() {System.out.println("test400");}
}

然后我創建了子類,并在子類中繼承主類

package b;public class graduate extends father_ {public graduate() {// TODO Auto-generated constructor stubSystem.out.println("graduate");}private void sayok() {//子類方法//非私有的屬性和方法可以直接在子類訪問,但私有屬性和方法不能在子類直接訪問System.out.println(n1+"-------"+n2+"-------"+n3);test100();test200();test300();test400();}
}

在用私有方法時The method test400() from the type father_ is not visible

然后我們再創建一個調用的類,就把他命名為main類

package b;public class main_ {public static void main(String[] args) {graduate gra=new graduate();gra.sayok();}
}

這里我們調用了graduate.發現它繼承的主類中的私有屬性和方法都不能訪問到

然后我們用公有的在父類中添加。

	//父類提供公共方法訪問public int getn3() {return n4;}public void callback400() {test400();}

間接調用私有變量和屬性

結果

base(....

graduate

100-------200-------400

test100

test200

test300

test400

分享一個快捷鍵同時選多個

如下圖所示,快捷鍵shift + alt + a 之后按鈕鼠標左鍵往下滑則可實現多行操作的功能,退出則再shift + alt + a 一次即可

ctrl+pagup切換tab

alt +esc在多個屏幕切換焦點

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

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

相關文章

(三)MySQL 索引

歡迎訪問 什么是索引? 提高查詢效率的一種數據結構,索引是數據的目錄 索引的分類 按「數據結構」分類:Btree索引、Hash索引、Full-text索引。按「物理存儲」分類:聚簇索引、二級索引。按「字段特性」分類:主鍵索引…

Spring6 對 集成MyBatis 開發運用(附有詳細的操作步驟)

詳細實現操作步驟 具體實現內容:我們運用 Spring6 和 MyBatis 實現一個轉賬操作(該轉賬操作,進行一個事務上的控制,運用 MyBatis 執行 SQL 語句)。 第一步:準備數據庫表 使用t_act表(賬戶表) 連接數據庫的…

三個有意思的鏈表面試題的完成

上一篇博客我們已經完成了鏈表的所有內容,那么這一篇博客我們來看一下三個特別有意思的鏈表題目。 **第一個題目如下:**相信不少朋友看到這題目就已經暈了,那就簡單說明下這個題目,題目就是創建一個鏈表,其中每個節點…

深入探索Java中的流式編程:優雅地處理集合數據

Java流式編程(Stream API)是Java 8引入的一項重要特性,它為處理集合數據提供了一種更為優雅和函數式的方式。通過流式操作,開發者可以以更簡潔、更直觀的方式處理數據,從而提高代碼的可讀性和可維護性。本文將深入探討…

Android14 - 繪制系統 - 概覽

從Android 12開始,Android的繪制系統有結構性變化, 在繪制的生產消費者模式中,新增BLASTBufferQueue,客戶端進程自行進行queue的生產和消費,隨后通過Transation提交到SurfaceFlinger,如此可以使得各進程將緩…

【vue3+elementuiplus】el-select下拉框會自動觸發校驗規則

場景:編輯彈框省份字段下拉框必填,觸發方式change,有值第一次打開不會觸發校驗提示,關閉彈框再次打開觸發必填校驗提示,但是該字段有值 問題的原因是:在關閉彈層事件中,我做了resetfileds&…

SpringBoot + MybatisPlus

SpringBoot MybatisPlus 整合記錄 1. 硬件軟件基本信息2. 相關鏈接3. 通過idea快速生成一個Springboot項目4. 啟動報錯問題解決問題一:Springboot啟動的時候報錯提示 “沒有符合條件的Bean關于Mapper類型”問題二:啟動的時候提示需要一個Bean&#xff0…

電磁仿真--CST網格介紹

1. 簡介 網格會影響仿真的準確性和速度,花時間理解網格化過程是很重要的。 CST 中可用的數值方法包括FIT、TLM、FEM、MoM,使用不同類型的網格: FIT和TLM:六面體 FEM:四面體、平面 MoM:表面 CFD&#…

深入理解與防御跨站腳本攻擊(XSS):從搭建實驗環境到實戰演練的全面教程

跨站腳本攻擊(XSS)是一種常見的網絡攻擊手段,它允許攻擊者在受害者的瀏覽器中執行惡意腳本。以下是一個XSS攻擊的實操教程,包括搭建實驗環境、編寫測試程序代碼、挖掘和攻擊XSS漏洞的步驟。 搭建實驗環境 1. 安裝DVWA&#xff…

【408真題】2009-16

“接”是針對題目進行必要的分析,比較簡略; “化”是對題目中所涉及到的知識點進行詳細解釋; “發”是對此題型的解題套路總結,并結合歷年真題或者典型例題進行運用。 涉及到的知識全部來源于王道各科教材(2025版&…

推薦一個快速開發接私活神器

文章目錄 前言一、項目介紹二、項目地址三、功能介紹四、頁面顯示登錄頁面菜單管理圖表展示定時任務管理用戶管理代碼生成 五、視頻講解總結 前言 大家好!我是智航云科技,今天為大家分享一個快速開發接私活神器。 一、項目介紹 人人開源是一個提供多種…

SCSS配置教程

SCSS(Sassy CSS)是 Sass(Syntactically Awesome Stylesheets)的一種語法,它是一種 CSS 預處理器,允許你使用變量、嵌套規則、混合(mixin)、函數等高級功能來編寫 CSS,從而…

Golang | Leetcode Golang題解之第112題路徑總和

題目: 題解: func hasPathSum(root *TreeNode, sum int) bool {if root nil {return false}if root.Left nil && root.Right nil {return sum root.Val}return hasPathSum(root.Left, sum - root.Val) || hasPathSum(root.Right, sum - roo…

C++常見知識點總結

常見字符 * 注釋:/* 這是一個注釋*/乘法:a * b取值運算符:*指針變量,int a 4,*a ????指針變量:數據類型 *變量名, int *no &bh&#xff0…

SAP揭秘者-怎么執行生產訂單ATP檢查及其注意點

文章摘要: 上篇文章給大家介紹生產訂單ATP檢查的相關后臺配置,大家可以按照配置步驟去進行配置,配置完之后,我們接下來就是要執行ATP檢查。本篇文章具體給大家介紹怎么來執行生產 訂單ATP檢查及其注意點。 執行生產訂單ATP檢查的…

Qt for android 獲取USB設備列表(二)JNI方式 獲取

簡介 基于上篇 [Qt for android 獲取USB設備列表(一)Java方式 獲取], 這篇就純粹多了, 直接將上篇代碼轉換成JNI方式即可。即所有的設備連接與上篇一致。 (https://listentome.blog.csdn.net/article/details/139205850) 關鍵代碼…

Android卡頓丟幀低內存與adb shell內存狀態

Android卡頓丟幀低內存與adb shell內存狀態 卡頓丟幀除了CPU/GPU層面,另外,也需要特別注意整機低內存情況。kswapd0 是一個內核工作線程,內存不足時會被喚醒,做內存回收工作。 當內存頻繁在低水位的時候,kswapd0 會被頻…

webgl three 項目常用操作

分組 const group1 new THREE.Group(); //所有高層樓的父對象group1.name "高層";for (let i 0; i < 5; i) {const geometry new THREE.BoxGeometry(20, 60, 10);const material new THREE.MeshLambertMaterial({color: 0x00ffff});const mesh new THREE.Me…

Linux基礎(六):Linux 系統上 C 程序的編譯與調試

本篇博客詳細分析&#xff0c;Linux平臺上C程序的編譯過程與調試方法&#xff0c;這也是我們后續程序開發的基礎。 目錄 一、第一個hello world程序 1.1 創建.c文件 1.2 編譯鏈接 運行可執行程序 二、編譯鏈接過程 2.1 預編譯階段 2.2 編譯階段 2.3 匯編階段 2.4 鏈…

一千題,No.0025(Chess For Three)

描述 Three friends gathered to play a few games of chess together. In every game, two of them play against each other. The winner gets 2 points while the loser gets 0, and in case of a draw, both players get 1 point each. Note that the same pair of playe…