999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

關于Java繼承性的探討

2011-02-08 13:02:18李斌王睿
湖南郵電職業技術學院學報 2011年1期
關鍵詞:程序

李斌,王睿

(揚州市職業大學信息工程學院,江蘇揚州225002)

在經歷了以大型機為代表的集中計算模式和以PC機為代表的分散計算模式之后,互聯網的出現使得計算模式進入了網絡計算時代。網絡計算模式的一個特點是計算機是異構的,即計算機的類型和操作系統是不一樣的,例如SUN工作站的硬件是SPARC體系,軟件是Unix中的Solaris操作系統,而PC機的硬件是Intel體系,操作系統是windows或者是Linux。網絡計算模式的另一個特點是代碼可以通過網絡在各種計算機上進行遷移,這就迫切需要一種跨平臺的編程語言,使得用它編寫的程序能夠在網絡中的各種計算機上能夠正常運行,Java就是在這種需求下應運而生的。Java語言具有簡單、面向對象、健壯、安全、可靠、平臺無關性、解釋執行、多線程、高性能、易學、適用于網絡等顯著特點,已成為當今最流行的網絡編程語言之一。

Java的所有程序都具有封裝性、繼承性和多態性。封裝性就是把對象的屬性和服務結合成一個獨立的相同單位,并盡可能隱蔽對象的內部細節;繼承是軟件重用的一種形式,也是自動地實現方法和數據共享的機制;多態性是指在父類中定義的屬性或服務被子類繼承之后,可以具有不同的數據類型或表現出不同的行為。本文僅就Java的繼承性進行一定的探討。

1 Java的繼承

繼承是一種由已有類創建新類的機制。繼承也是面向對象語言的基本要素之一,它是源自類的泛化機制,這種抽象機制提供了一種無限重復利用程序資源的途徑,繼承可以擴展原有的代碼,應用到其他程序中,而不必重新編寫這些代碼,這樣不僅節省程序開發時間,而且為未來程序設計增添了新的資源。對象通過繼承,保證了實現部分緊內聚和松耦合的良好特性。

利用繼承,我們可以先創建一個共有屬性的一般類,根據該類再創建具有特殊屬性的新類。在Java語言中,通常我們稱被繼承的一般類為父類(superclass,也叫超類),由繼承而得到的特殊類稱為子類 (subclass)。我們也可以說子類是由父類派生出的類。

Java的繼承原則如下:

1)子類繼承父類的成員變量,包括實例成員變量和類成員變量;

2) 子類繼承父類除構造方法以外的成員方法,包括實例成員方法和類成員方法;

3)子類不能繼承父類的構造方法,因為父類構造方法創建的是父類對象,子類必須聲明自己的構造方法,創建子類自己的對象;

4)子類不能刪除父類成員;

5)子類可以增加自己的成員變量和成員方法;

6)子類可以重定義父類成員。

在這段代碼中,子類 SubA繼承了父類SuperA,那么子類自然就擁有了父類的變量a,同時子類自己又添加了自己新的成員變量b以擴充自己的功能。在子類SubA中還可以更改父類SuperA的變量a,讓其適應自己的需求,比如,我們在SubA中增加一行代碼:int a=3;,這樣在子類SubA中的變量a實際上隱藏了父類SuperA的變量a。但是,如果試圖在子類SubA中刪除父類SuperA的變量a,這是Java所不允許的。

子類的對象即是父類的對象。反之不然,父類的對象不是它的子類對象。例如:SuperA supa=new SubA();這條語句是語法允許的,父類對象supa能夠被賦值為子類對象new SubA();而SuBA suba=new SuperA();這條語句編譯是不能通過的,因為子類對象suba是不能能夠被賦值為父類對象new SuperA()的。

2 單重繼承和多重繼承

子類直接上一層的父類稱為直接父類,如果一個類只有一個直接父類則稱這樣的繼承為單重繼承,一個類也可以是多個直接父類的子類,它從多個父類中繼承了屬性與服務,這樣的繼承稱為多重繼承。

在單重繼承方式下,父類與子類是一對多的關系,一個子類只有一個直接父類,但一個父類可以有多個子類,每個子類又可以作為父類再有自己的子類。

3 Java中類的繼承

Java只支持單重繼承機制,不支持多重繼承,單重繼承使得Java結構簡單,層次清楚,更安全可靠,從而避免了C++中因多重繼承而引起的難以預測的錯誤。所以聲明的類只能有一個父類。子類的聲明格式為: [<修飾符>]class<子類名>extends<超類名>,從中我們也能清楚看出Java中類的繼承關系為單重繼承關系。在Java中,一個父類可以有多個子類,每個子類又可以作為父類再有自己的子類。由此形成具有樹形結構的層次體系,其中具有繼承關系的、相距多個層次的類之間稱為祖先類和后代類,父類也稱為直接祖先類。這種樹形繼承關系并不違反Java的單重繼承原則。

其實,在Java中,每個類都有父類,如果沒有顯式地標明類的父類,則隱含地假設超類為語言包java.lang中說明的Object類。

在Java中,子類對象對父類成員的訪問權限主要依據如下規則進行:

1)子類對父類的私有成員(private)沒有訪問權限;

2)子類對父類的公有成員(public)和保護成員(protected)具有訪問權限;

3)子類對父類中缺省權限成員(default)的訪問分為兩種情況,對同一包中父類的缺省權限成員具有訪問權限,而對不同包中父類的缺省權限成員則沒有訪問權限。

4 Java中接口的繼承

Java只支持單重繼承機制,但是實際應用中有時候也需要使用多重繼承這個功能。

Java中關于接口實現的聲明格式為: [<修飾符>] class<類名> [extends<超類名>] [implements<接口名1>,<接口名2>,…],從中我們可以看出一個類通過關鍵字implements實現了一系列的接口,這實際上就變相地完成了多重繼承的功能,所以通常我們說Java只支持單重繼承,不支持多重繼承,但是卻可以通過接口來實現多重繼承的功能。

問題在于Java中接口本身的繼承關系是單重繼承還是多重繼承呢?我們在學習接口的時候知道,編譯的時候接口會像類一樣被編譯,所以很多人就非常簡單地認為接口既然被當成類編譯,那么自然接口的繼承性也和類一樣是單重的,這也正好和Java的單重繼承原則不謀而合。事實上這樣的理解是完全錯誤的,恰恰相反,接口的本身的繼承性卻是多重的。我們看下面一段程序(程序名為ClassABCTest.java):

程序能正常編譯,運行結果為(見圖1):

圖1 程序ClassABCTest.java運行結果

程序中我們聲明了三個接口InterA、InterB、InterC和兩個類 ClassABC、ClassABCTest。接口InterA和InterB是兩個獨立的接口,而接口InterC用關鍵字extends繼承了接口InterA和InterB,事實顯而易見,這是多重繼承關系,即接口InterC同時繼承了接口InterA和InterB。

5 結束語

綜上,Java中類的繼承是單重繼承,但是卻可以通過一個類實現多個接口這種方法來實現多重繼承的功能,或者直接通過一個接口繼承多個接口來實現多重繼承的功能。接口不僅很好地解決了多重繼承,對于單重繼承層次較多、間接父類多的類結構,接口還可以避免子類成員的膨脹、龐雜、難以管理等問題,但接口仍然存在不一致性等問題。

即便是運用一個具有較全而完整的繼承機制的語言,實際應遵循的原則也應該是盡可能保持繼承層次體系的簡單性,只有在條件非常充分的情況下才使用多重繼承。

[1]許曉寧.JAVA技術實用教程[M].南京:東南大學出版社,2005.

[2]葉核亞.JAVA2程序設計實用教程(第2版)[M].北京:電子工業出版社,2007.

[3]布雷恩,等.JAVA2精要語言詳解與編程指南[M].北京:清華大學出版社,2002.

[4]朱喜福.Java程序設計[M].北京:清華大學出版社,2004.

[5]王行言.JAVA語言與面向對象程序設計[M].北京:清華大學出版社,2000.

[6]劉藝.JAVA程序設計大學教程[M].北京:機械工業出版社,2006.

[7]Ian Joyner(著).對象揭秘:Java,Eiffel和c++[M].鮑志云(譯).北京:人民郵電出版社,2003.

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 国产在线97| 欧美三级不卡在线观看视频| 久久精品这里只有精99品| 免费a级毛片18以上观看精品| 久久精品国产亚洲麻豆| 亚洲综合二区| 伊人久久综在合线亚洲91| 伊在人亞洲香蕉精品區| 国产日韩欧美中文| yy6080理论大片一级久久| 国产美女91呻吟求| 国产丝袜丝视频在线观看| 亚洲精品自拍区在线观看| 国产男女免费视频| 国产三级成人| 中文字幕在线观| 99er这里只有精品| 欧洲在线免费视频| 亚洲人成网站18禁动漫无码| 久久特级毛片| 青青草综合网| 久久久久无码国产精品不卡 | 国产一区二区网站| 国产区免费| 国产精品第一区| 凹凸精品免费精品视频| 中日无码在线观看| 91亚洲精品国产自在现线| 久久精品国产999大香线焦| 91精品人妻互换| 青青草国产一区二区三区| 国产一在线| 无码AV高清毛片中国一级毛片| 久久国产高清视频| 久久伊人操| 草逼视频国产| 亚洲综合色婷婷中文字幕| 中文字幕有乳无码| 中国国语毛片免费观看视频| 欧美福利在线播放| 国产精品免费露脸视频| 尤物亚洲最大AV无码网站| a级毛片在线免费| 亚洲欧美国产视频| 国产杨幂丝袜av在线播放| 国产成人在线小视频| 久久黄色影院| 欧美精品不卡| 午夜视频www| 欧美在线黄| 另类综合视频| 第九色区aⅴ天堂久久香| 亚洲 成人国产| 国产女人在线| 高潮毛片无遮挡高清视频播放| 午夜精品影院| 精品免费在线视频| 国产成+人+综合+亚洲欧美| 亚洲国产成人精品无码区性色| 国产女人水多毛片18| 国产福利免费观看| 亚洲精品动漫| 香蕉久久国产超碰青草| 国产丝袜第一页| 男女猛烈无遮挡午夜视频| 免费在线一区| 精品伊人久久大香线蕉网站| 天天色天天综合网| 午夜小视频在线| 国产精品页| 国产熟女一级毛片| 亚洲综合中文字幕国产精品欧美| 99久久免费精品特色大片| 国产在线自在拍91精品黑人| 永久毛片在线播| 在线国产资源| 国产精品福利尤物youwu| av一区二区无码在线| 激情乱人伦| 在线看片中文字幕| 久草视频福利在线观看| 六月婷婷综合|