今天小編就為大家?guī)硪黄猨ava面向?qū)ο罄^承詳細解析的文章。小編覺得挺不錯的,為此分享給大家做個參考。一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)專注于鎮(zhèn)海企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計,電子商務(wù)商城網(wǎng)站建設(shè)。鎮(zhèn)海網(wǎng)站建設(shè)公司,為鎮(zhèn)海等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站建設(shè),專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
什么是java繼承
繼承是面向?qū)ο笞铒@著的一個特性。繼承是從已有的類中派生出新的類,新的類能吸收已有類的數(shù)據(jù)屬性和行為,并能擴展新的能力。
Java繼承是使用已存在的類的定義作為基礎(chǔ)建立新類的技術(shù),新類的定義可以增加新的數(shù)據(jù)或新的功能,也可以用父類的功能,但不能選擇性地繼承父類。這種技術(shù)使得復(fù)用以前的代碼非常容易,能夠大大縮短開發(fā)周期,降低開發(fā)費用。( )
比如可以先定義一個類叫車,車有以下屬性:車體大小,顏色,方向盤,輪胎,而又由車這個類派生出轎車和卡車兩個類,為轎車添加一個小后備箱,而為卡車添加一個大貨箱。
java繼承特征:
(1)繼承關(guān)系是傳遞的。若類C繼承類B,類B繼承類A(多繼承),則類C既有從類B那里繼承下來的屬性與方法,也有從類A那里繼承下來的屬性與方法,還可以有自己新定義的屬性和方法。繼承來的屬性和方法盡管是隱式的,但仍是類C的屬性和方法。繼承是在一些比較一般的類的基礎(chǔ)上構(gòu)造、建立和擴充新類的最有效的手段。
(2)繼承簡化了人們對事物的認識和描述,能清晰體現(xiàn)相關(guān)類間的層次結(jié)構(gòu)關(guān)系。
(3)繼承提供了軟件復(fù)用功能。若類B繼承類A,那么建立類B時只需要再描述與基類(類A)不同的少量特征(數(shù)據(jù)成員和成員方法)即可。這種做法能減小代碼和數(shù)據(jù)的冗余度,大大增加程序的重用性。
(4)繼承通過增強一致性來減少模塊間的接口和界面,大大增加了程序的易維護性。
(5)提供多重繼承機制。從理論上說,一個類可以是多個一般類的特殊類,它可以從多個一般類中繼承屬性與方法,這便是多重繼承。Java出于安全性和可靠性的考慮,僅支持單重繼承,而通過使用接口機制來實現(xiàn)多重繼承。
示例:
父類Person
/** * 父類 人類 * * @author zkj * */ public class Person { // 名字 protected String name; // 編號 protected int id; // 工作環(huán)境 protected String environment; // 特長 protected String speciality; public Person(String myName, int myid, String myEnvironment, String mySpeciality) { name = myName; id = myid; environment = myEnvironment; speciality = mySpeciality; } /* * 工作地點 */ public void work() { System.out.println(name + "在" + environment + "工作" + '。'); } /* * 工作能力 */ public void ability() { System.out.println(name + "我會" + speciality + '。'); } /* * 自我介紹 */ public void introduction() { System.out.println("大家好!我是" + id + "號" + name + '。'); } }
子類:
package com.zkj.person; /** * 人類的子類 醫(yī)生類 * * @author zkj * */ public class Doctor extends Person { public Doctor(String myName, int myid, String myEnvironment, String mySpeciality) { super(myName, myid, myEnvironment, mySpeciality); } /* * 自我介紹 */ void introductionMy() { super.introduction(); } /* * 自我介紹 覆寫 */ public void introduction() { System.out.println("大家好!我是一名醫(yī)生"); } /* * 工作職責(zé) */ public void duty() { System.out.println("治病救人是我的職責(zé)"); } }
運行:
public class Run { public static void main(String[] args) { // 醫(yī)生張三 Doctor doctor = new Doctor("張三", 1, "醫(yī)院", "診斷"); // 張三的自我介紹 doctor.introduction(); // 張三的工作地點 doctor.work(); // 張三的能力 doctor.ability(); // 張三的職責(zé) doctor.duty(); } }
以上就是java面向?qū)ο罄^承的詳細解析,代碼示例詳細清楚,如果在日常工作遇到此問題,希望你能通過這篇文章解決問題。如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!