一篇文章帶你入門Java繼承
Java中繼承
什么是繼承:
繼承就是子類繼承父類的特征和行為,使得子類對(duì)象(實(shí)例)具有父類的實(shí)例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。
為什么要用繼承:
可以去掉重復(fù)代碼,方便后期維護(hù)
舉個(gè)列子,大家應(yīng)該都玩過英雄聯(lián)盟,每個(gè)英雄都是一個(gè)類,如果說不用繼承的話每次都要重復(fù)定義每個(gè)英雄的成員屬性,如下圖我舉了一個(gè)MF,一個(gè)EZ的列子
public class MissFortune { // 成員 // 屬性 String nameID; int hp; int ad; int ap; int lv;// 人物等級(jí) // 技能等級(jí) int q_lv; }
public class Ezreal { // 成員 // 屬性 String nameID; int hp; int ad; int ap; int lv;// 人物等級(jí) // 技能等級(jí) int q_lv; }
這樣就創(chuàng)建了兩個(gè)單獨(dú)獨(dú)立的英雄類,可以發(fā)現(xiàn)前半部分代碼都是重復(fù)的,下面我們用繼承來看一下
首先創(chuàng)建一個(gè)父類:
public class Hero { // 成員 // 屬性 String nameID; int hp; int ad; int ap; int lv;// 人物等級(jí) // 技能等級(jí) int q_lv; }
然后再看我們的單獨(dú)英雄類:
public class MissFortune extends Hero{ // 成員方法 // 初始化 public void initMissFortune(){ hp=570; ad=52; ap=0; lv=1; q_lv=1; } }
public class Ezreal extends Hero { // 成員方法 // 初始化 public void initEzreal(){ hp=530; ad=60; ap=0; lv=1; q_lv=1; } }
在此之中,父類的屬性和方法 子類都可以繼承到并 直接調(diào)用,簡潔了代碼,后期維護(hù)的過程中也不容易出錯(cuò)
學(xué)習(xí)總結(jié):
繼承關(guān)鍵字:extends
格式:
public class 子類名 extends 父類名{ }
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
SpringBoot之groups應(yīng)對(duì)不同的Validation規(guī)則自定義方式
這篇文章主要介紹了SpringBoot之groups應(yīng)對(duì)不同的Validation規(guī)則自定義方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10springboot實(shí)現(xiàn)定時(shí)任務(wù)@Scheduled方式
這篇文章主要介紹了springboot實(shí)現(xiàn)定時(shí)任務(wù)@Scheduled方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07macOS中搭建Java8開發(fā)環(huán)境(基于Intel?x86?64-bit)
這篇文章主要介紹了macOS中搭建Java8開發(fā)環(huán)境(基于Intel?x86?64-bit)?的相關(guān)資料,需要的朋友可以參考下2022-12-12java7鉆石語法知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是關(guān)于java7鉆石語法的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們參考下。2019-11-11如何使用mybatis-generator自動(dòng)生成代碼
這篇文章主要介紹了如何使用mybatis-generator自動(dòng)生成代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10