中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java面向對象繼承詳細解析

發布時間:2020-05-11 16:10:06 來源:億速云 閱讀:226 作者:Leah 欄目:編程語言

今天小編就為大家帶來一篇java面向對象繼承詳細解析的文章。小編覺得挺不錯的,為此分享給大家做個參考。一起跟隨小編過來看看吧。

什么是java繼承

繼承是面向對象最顯著的一個特性。繼承是從已有的類中派生出新的類,新的類能吸收已有類的數據屬性和行為,并能擴展新的能力。

Java繼承是使用已存在的類的定義作為基礎建立新類的技術,新類的定義可以增加新的數據或新的功能,也可以用父類的功能,但不能選擇性地繼承父類。這種技術使得復用以前的代碼非常容易,能夠大大縮短開發周期,降低開發費用。( )

比如可以先定義一個類叫車,車有以下屬性:車體大小,顏色,方向盤,輪胎,而又由車這個類派生出轎車和卡車兩個類,為轎車添加一個小后備箱,而為卡車添加一個大貨箱。

java繼承特征:

(1)繼承關系是傳遞的。若類C繼承類B,類B繼承類A(多繼承),則類C既有從類B那里繼承下來的屬性與方法,也有從類A那里繼承下來的屬性與方法,還可以有自己新定義的屬性和方法。繼承來的屬性和方法盡管是隱式的,但仍是類C的屬性和方法。繼承是在一些比較一般的類的基礎上構造、建立和擴充新類的最有效的手段。

(2)繼承簡化了人們對事物的認識和描述,能清晰體現相關類間的層次結構關系。

(3)繼承提供了軟件復用功能。若類B繼承類A,那么建立類B時只需要再描述與基類(類A)不同的少量特征(數據成員和成員方法)即可。這種做法能減小代碼和數據的冗余度,大大增加程序的重用性。

(4)繼承通過增強一致性來減少模塊間的接口和界面,大大增加了程序的易維護性。

(5)提供多重繼承機制。從理論上說,一個類可以是多個一般類的特殊類,它可以從多個一般類中繼承屬性與方法,這便是多重繼承。Java出于安全性和可靠性的考慮,僅支持單重繼承,而通過使用接口機制來實現多重繼承。

示例:

父類Person

/**
 * 父類 人類
 * 
 * @author zkj
 *
 */
public class Person {
 
	// 名字
	protected String name;
	// 編號
	protected int id;
	// 工作環境
	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;
 
/**
 * 人類的子類 醫生類
 * 
 * @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("大家好!我是一名醫生");
	}
 
	/*
	 * 工作職責
	 */
	public void duty() {
		System.out.println("治病救人是我的職責");
	}
}

運行:

public class Run {
	public static void main(String[] args) {
		// 醫生張三
		Doctor doctor = new Doctor("張三", 1, "醫院", "診斷");
		// 張三的自我介紹
		doctor.introduction();
		// 張三的工作地點
		doctor.work();
		// 張三的能力
		doctor.ability();
		// 張三的職責
		doctor.duty();
	}
}

以上就是java面向對象繼承的詳細解析,代碼示例詳細清楚,如果在日常工作遇到此問題,希望你能通過這篇文章解決問題。如果想了解更多相關內容,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沁水县| 河东区| 普陀区| 汉寿县| 万宁市| 南汇区| 柳江县| 北票市| 洛扎县| 烟台市| 威信县| 闽清县| 昭平县| 轮台县| 榆社县| 合肥市| 浏阳市| 大英县| 贵定县| 务川| 广宗县| 内黄县| 金乡县| 历史| 盘锦市| 盐边县| 宜城市| 凌海市| 米脂县| 茌平县| 阿尔山市| 东丽区| 马关县| 六安市| 观塘区| 汉源县| 平顺县| 泸溪县| 成安县| 南汇区| 钦州市|