欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java 繼承原理與用法實(shí)例分析

 更新時(shí)間:2019年06月20日 11:30:20   作者:longzhoufeng  
這篇文章主要介紹了Java 繼承原理與用法,結(jié)合實(shí)例形式分析了java面向?qū)ο蟪绦蛟O(shè)計(jì)中繼承的概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Java 繼承原理與用法。分享給大家供大家參考,具體如下:

繼承的概念

繼承是java面向?qū)ο缶幊碳夹g(shù)的一塊基石,因?yàn)樗试S創(chuàng)建分等級(jí)層次的類。

繼承就是子類繼承父類的特征和行為,使得子類對(duì)象(實(shí)例)具有父類的實(shí)例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。

類的繼承格式

在 Java 中通過 extends 關(guān)鍵字可以申明一個(gè)類是從另外一個(gè)類繼承而來的,一般形式如下:

class 父類 {
}
class 子類 extends 父類 {
}

為什么需要繼承

接下來我們通過實(shí)例來說明這個(gè)需求。

開發(fā)動(dòng)物類,其中動(dòng)物分別為企鵝以及老鼠,要求如下:

企鵝:屬性(姓名,id),方法(吃,睡,自我介紹)
老鼠:屬性(姓名,id),方法(吃,睡,自我介紹)

企鵝類

public class Penguin {
  private String name;
  private int id;
  public Penguin(String myName, int myid) {
    name = myName;
    id = myid;
  }
  public void eat(){
    System.out.println(name+"正在吃");
  }
  public void sleep(){
    System.out.println(name+"正在睡");
  }
  public void introduction() {
    System.out.println("大家好!我是"     + id + "號(hào)" + name + ".");
  }
}

老鼠類:

public class Mouse {
  private String name;
  private int id;
  public Mouse(String myName, int myid) {
    name = myName;
    id = myid;
  }
  public void eat(){
    System.out.println(name+"正在吃");
  }
  public void sleep(){
    System.out.println(name+"正在睡");
  }
  public void introduction() {
    System.out.println("大家好!我是"     + id + "號(hào)" + name + ".");
  }
}

從這兩段代碼可以看出來,代碼存在重復(fù)了,導(dǎo)致后果就是代碼量大且臃腫,而且維護(hù)性不高(維護(hù)性主要是后期需要修改的時(shí)候,就需要修改很多的代碼,容易出錯(cuò)),所以要從根本上解決這兩段代碼的問題,就需要繼承,將兩段代碼中相同的部分提取出來組成 一個(gè)父類:

公共父類:

public class Animal {
  private String name;
  private int id;
  public Animal(String myName, int myid) {
    name = myName;
    id = myid;
  }
  public void eat(){
    System.out.println(name+"正在吃");
  }
  public void sleep(){
    System.out.println(name+"正在睡");
  }
  public void introduction() {
    System.out.println("大家好!我是"     + id + "號(hào)" + name + ".");
  }
}

這個(gè)Animal類就可以作為一個(gè)父類,然后企鵝類和老鼠類繼承這個(gè)類之后,就具有父類當(dāng)中的屬性和方法,子類就不會(huì)存在重復(fù)的代碼,維護(hù)性也提高,代碼也更加簡潔,提高代碼的復(fù)用性(復(fù)用性主要是可以多次使用,不用再多次寫同樣的代碼) 繼承之后的代碼:

企鵝類:

public class Penguin extends Animal {
  public Penguin(String myName, int myid) {
    super(myName, myid);
  }
}

老鼠類:

public class Mouse extends Animal {
  public Mouse(String myName, int myid) {
    super(myName, myid);
  }
}

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • SpringBoot中整合Ehcache實(shí)現(xiàn)熱點(diǎn)數(shù)據(jù)緩存的詳細(xì)過程

    SpringBoot中整合Ehcache實(shí)現(xiàn)熱點(diǎn)數(shù)據(jù)緩存的詳細(xì)過程

    這篇文章主要介紹了SpringBoot中整合Ehcache實(shí)現(xiàn)熱點(diǎn)數(shù)據(jù)緩存,SpringBoot 中使用 Ehcache 比較簡單,只需要簡單配置,說白了還是 Spring Cache 的用法,合理使用緩存機(jī)制,可以很好地提高項(xiàng)目的響應(yīng)速度,需要的朋友可以參考下
    2023-04-04
  • JDBC獲取數(shù)據(jù)庫連接由淺入深

    JDBC獲取數(shù)據(jù)庫連接由淺入深

    大家好,本篇文章主要講的是JDBC獲取數(shù)據(jù)庫連接由淺入深,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • java虛擬機(jī)之JVM調(diào)優(yōu)詳解

    java虛擬機(jī)之JVM調(diào)優(yōu)詳解

    這篇文章主要介紹了java虛擬機(jī)之JVM調(diào)優(yōu)詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)Java虛擬機(jī)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • HTTP 415錯(cuò)誤-Unsupported media type詳解

    HTTP 415錯(cuò)誤-Unsupported media type詳解

    這篇文章主要介紹了HTTP 415錯(cuò)誤-Unsupported media type詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 實(shí)例講解Java的Spring框架中的控制反轉(zhuǎn)和依賴注入

    實(shí)例講解Java的Spring框架中的控制反轉(zhuǎn)和依賴注入

    這篇文章主要介紹了Java的Spring框架中的控制反轉(zhuǎn)和依賴注入,Spring是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2016-02-02
  • JavaMail整合Spring實(shí)現(xiàn)郵件發(fā)送功能

    JavaMail整合Spring實(shí)現(xiàn)郵件發(fā)送功能

    這篇文章主要為大家詳細(xì)介紹了JavaMail整合Spring實(shí)現(xiàn)郵件發(fā)送功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • IDEA運(yùn)行SpringBoot項(xiàng)目的詳細(xì)步驟(圖文教程)

    IDEA運(yùn)行SpringBoot項(xiàng)目的詳細(xì)步驟(圖文教程)

    本文主要介紹了IDEA運(yùn)行SpringBoot項(xiàng)目的詳細(xì)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Java實(shí)現(xiàn)定時(shí)讀取json文件里內(nèi)容的示例代碼

    Java實(shí)現(xiàn)定時(shí)讀取json文件里內(nèi)容的示例代碼

    有時(shí)候我們會(huì)需要定時(shí)來讀取JSON配置文件里的內(nèi)容,來執(zhí)行一些業(yè)務(wù)邏輯上的操作,本文就介紹了Java實(shí)現(xiàn)定時(shí)讀取json文件里內(nèi)容的示例代碼,感興趣的可以了解一下
    2023-08-08
  • 詳解JAVA如何實(shí)現(xiàn)樂觀鎖以及CAS機(jī)制

    詳解JAVA如何實(shí)現(xiàn)樂觀鎖以及CAS機(jī)制

    悲觀鎖和樂觀鎖其實(shí)本質(zhì)都是一種思想,在JAVA中對(duì)于悲觀鎖的實(shí)現(xiàn)大家可能都很了解,可以通過synchronized、ReentrantLock加鎖實(shí)現(xiàn),本文不展開講解了。那么樂觀鎖在JAVA中是如何實(shí)現(xiàn)的呢?底層的實(shí)現(xiàn)機(jī)制又是什么呢?本文就來和大家詳細(xì)講講
    2022-12-12
  • Spring?Boot?中starter的原理詳析

    Spring?Boot?中starter的原理詳析

    這篇文章主要介紹了Spring?Boot?中starter原理詳析,文章圍繞主題展開springboot的插件機(jī)制和starter原理相關(guān)資料,需要的小伙伴可以參考一下
    2022-06-06

最新評(píng)論