- 相關(guān)推薦
編程java繼承是什么
java繼承是使用已存在的類(lèi)的定義作為基礎(chǔ)建立新類(lèi)的技術(shù),新類(lèi)的定義可以增加新的數(shù)據(jù)或新的功能,也可以用父類(lèi)的功能,但不能選擇性地繼承父類(lèi)。
這種技術(shù)使得復(fù)用以前的代碼非常容易,能夠大大縮短開(kāi)發(fā)周期,降低開(kāi)發(fā)費(fèi)用。今天,小編為大家搜索整理了java繼承是什么,希望大家能有所收獲,更多精彩內(nèi)容請(qǐng)持續(xù)關(guān)注我們考試網(wǎng)!
繼承是java面向?qū)ο缶幊碳夹g(shù)的一塊基石,因?yàn)樗试S創(chuàng)建分等級(jí)層次的類(lèi)。繼承可以理解為一個(gè)對(duì)象從另一個(gè)對(duì)象獲取屬性的過(guò)程。
如果類(lèi)A是類(lèi)B的父類(lèi),而類(lèi)B是類(lèi)C的父類(lèi),我們也稱(chēng)C是A的子類(lèi),類(lèi)C是從類(lèi)A繼承而來(lái)的。在Java中,類(lèi)的繼承是單一繼承,也就是說(shuō),一個(gè)子類(lèi)只能擁有一個(gè)父類(lèi)
繼承中最常使用的兩個(gè)關(guān)鍵字是extends和implements。
這兩個(gè)關(guān)鍵字的使用決定了一個(gè)對(duì)象和另一個(gè)對(duì)象是否是IS-A(是一個(gè))關(guān)系。
通過(guò)使用這兩個(gè)關(guān)鍵字,我們能實(shí)現(xiàn)一個(gè)對(duì)象獲取另一個(gè)對(duì)象的屬性。
所有Java的類(lèi)均是由java.lang.Object類(lèi)繼承而來(lái)的,所以O(shè)bject是所有類(lèi)的祖先類(lèi),而除了Object外,所有類(lèi)必須有一個(gè)父類(lèi)。
通過(guò)過(guò)extends關(guān)鍵字可以申明一個(gè)類(lèi)是繼承另外一個(gè)類(lèi)而來(lái)的,一般形式如下:
// A.javapublic class A { private int i; protected int j; public void func() { }} // B.javapublic class B extends A {}
以上的代碼片段說(shuō)明,B由A繼承而來(lái)的,B是A的子類(lèi)。而A是Object的子類(lèi),這里可以不顯示地聲明。
作為子類(lèi),B的實(shí)例擁有A所有的成員變量,但對(duì)于private的成員變量B卻沒(méi)有訪問(wèn)權(quán)限,這保障了A的封裝性。【相關(guān)閱讀】
java泛型類(lèi)講解
泛型,即“參數(shù)化類(lèi)型”。一提到參數(shù),最熟悉的就是定義方法時(shí)有形參,然后調(diào)用此方法時(shí)傳遞實(shí)參。那么參數(shù)化類(lèi)型怎么理解呢?顧名思義,就是將類(lèi)型由原來(lái)的具體的類(lèi)型參數(shù)化,類(lèi)似于方法中的變量參數(shù),此時(shí)類(lèi)型也定義成參數(shù)形式(可以稱(chēng)之為類(lèi)型形參),然后在使用/調(diào)用時(shí)傳入具體的類(lèi)型(類(lèi)型實(shí)參)。
泛型類(lèi)的聲明和非泛型類(lèi)的聲明類(lèi)似,除了在類(lèi)名后面添加了類(lèi)型參數(shù)聲明部分。
和泛型方法一樣,泛型類(lèi)的類(lèi)型參數(shù)聲明部分也包含一個(gè)或多個(gè)類(lèi)型參數(shù),參數(shù)間用逗號(hào)隔開(kāi)。一個(gè)泛型參數(shù),也被稱(chēng)為一個(gè)類(lèi)型變量,是用于指定一個(gè)泛型類(lèi)型名稱(chēng)的標(biāo)識(shí)符。因?yàn)樗麄兘邮芤粋(gè)或多個(gè)參數(shù),這些類(lèi)被稱(chēng)為參數(shù)化的類(lèi)或參數(shù)化的類(lèi)型。
實(shí)例
如下實(shí)例演示了我們?nèi)绾味x一個(gè)泛型類(lèi):
public class Box{ private T t; public void add(T t) { this.t = t; } public T get() { return t; } public static void main(String[] args) { BoxintegerBox = new Box(); BoxstringBox = new Box(); integerBox.add(new Integer(10)); stringBox.add(new String("Hello World")); System.out.printf("Integer Value :%d ", integerBox.get()); System.out.printf("String Value :%s ", stringBox.get()); }}
編譯以上代碼,運(yùn)行結(jié)果如下所示:
Integer Value :10 String Value :Hello World
【編程java繼承是什么】相關(guān)文章:
java繼承是什么06-11
Java 繼承07-04
Java語(yǔ)言接口與繼承的本質(zhì)是什么06-29
java的繼承總結(jié)08-06
java編程術(shù)語(yǔ)11-10
java編程基礎(chǔ)07-26
Java編程語(yǔ)言10-02
java語(yǔ)言的接口與繼承09-09
Java中的繼承與組合09-20