?? csdn_文檔中心_重繼承、接口和異常處理.htm
字號:
}
else
year= tmpDate.getYear();
document.write(year);
document.write(".");
document.write(month);
document.write(".");
document.write(date);
// -->
</SCRIPT>
</B> </TD></TR>
<TR bgColor=#999999>
<TD colSpan=3 height=1></TD></TR></TBODY></TABLE>
<TABLE border=0 width=770>
<TBODY>
<TR>
<TD align=middle bgColor=#fafafa class=td1 vAlign=top width=150><BR>
<SCRIPT src="CSDN_文檔中心_重繼承、接口和異常處理.files/microsoft.js"></SCRIPT>
</TD>
<TD align=middle width=620>
<TABLE bgColor=#eeeeee border=0 cellPadding=0 cellSpacing=0 width=600>
<TBODY>
<TR bgColor=#ffffff>
<TD align=middle height=10 width=50></TD>
<TD align=right><A href="http://www.csdn.net/">CSDN</A> - <A
href="http://www.csdn.net/develop/">文檔中心</A> - <FONT
color=#003399>Visual C++</FONT> </TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399 height=10><FONT
color=#ffffff>標題</FONT></TD>
<TD><B> 重繼承、接口和異常處理</B> jeffreyren(轉貼)
</TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399><FONT color=#ffffff>關鍵字</FONT></TD>
<TD width=500> 重繼承、接口和異常處理</TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399 height=10><FONT
color=#ffffff>出處</FONT></TD>
<TD height=10> <A
href="http://www2.yesky.com/34670784/148069.shtml">http://www2.yesky.com/34670784/148069.shtml</A></TD></TR>
<TR>
<TD align=middle height=10></TD>
<TD height=10></TD></TR></TBODY></TABLE><!--文章說明信息結束//-->
<TABLE border=0 width=600>
<TBODY>
<TR>
<TD align=left><BR>
<P>重繼承、接口和異常處理<BR>2000-12-23· Adding翻譯·yesky</P>
<P>--------------------------------------------------------------------------------</P>
<P><BR>多重繼承和接口</P>
<P> 一些面向對象語言允許一個類從多個基類中繼承,而另一些面向對象語言只允許從一個類繼承,但可以隨意從幾個接口或純抽象類中繼承。一個純抽象類是只含有純虛函數的類。</P>
<P> 只有C++支持多個接口,許多程序員對此褒貶不一。由多個接口引發的虛基類的概念雖然不易讓人掌握,但它的功能是強大的。C++沒有接口概念。</P>
<P> 和Object
Pascal一樣,Java雖沒有多重繼承,但卻全面支持多個接口。接口的方法支持多態性,當需要一個接口對象時,就可以通過對象實現一個接口。一個類可以繼承或擴展一個已有多個接口的基類。例如:</P>
<P>public interface CanFly { <BR>public void Fly();<BR>}<BR>public
class Bat extends Animal implements CanFly { <BR>public void Fly( )
<P> 引入Object Pascal的Dephi 3 有與Java接口相似的概念,但這些概念和COM映射得非常好。Dephi
3的接口是和類的繼承分開的,而Java的類不僅可以從基類繼承,而且可以有多個接口。</P>
<P> 一個強壯類型的面向對象語言編譯時必然需要全部的類型檢查,但有時還必需在運行程序時保留一些類型和類的信息。基于這種考慮,Java
、C++和Object
Pascal都支持在更高或較小范圍內的Identification或Information運行類型檢查。RTTI用于Identification和Information兩者的運行類型檢查。</P>
<P> C++一開始是不支持RTTI的,后來加上dynamic_cast用來得到一些類的類型信息。</P>
<P> Object
Pascal和它的可視化環境支持許多RTTI。它不僅支持類型檢查和is或as操作,而且為每個published元素產生更廣泛的RTTI。實際上,published這個關鍵字影響產生的RTTI信息。所有屬性的概念、流機制、Delphi環境以及對象檢測的開始,在很在程度上取決于RTTI。TObject有ClassName和ClassType方法,ClassType返回類的類型變量,一個特殊指定類的實例。</P>
<P> 同Object
Pascal相同,Java也有一個基類來保持對類信息的跟蹤。Object的getClass()用來返回一種類型的元類(用來描述類的對象),getName()函數返回類的字符串名。也可使用instanceof來關注可視化環境和組件的進程。</P>
<P> 下面的例子來說明上述三種語言的不同:</P>
<P>// C++<BR>Dog* MyDog = dynamic_cast <Dog*>
(myAnimal);<BR>// Java<BR>Dog MyDog = (Dog) myAnimal;<BR>// Object
Pascal<BR>Dog myDog := myAnimal as Dog;</P>
<P><BR>異常處</P>
<P> 異常處理的基本思想是簡化程序的錯誤代碼,為程序鍵壯性提供一個標準檢測機制。由于異常內容太多,故這里僅討論主要的元素和差別。</P>
<P> C++使用throw關鍵字來產生異常,try關鍵字用來檢測的程序塊,catch關鍵字用來填寫異常處理的代碼。異常可以由一個確定類或派生類的對象產生。C++能釋放堆棧,并可清除堆棧中所有的對象。</P>
<P> Object
Pascal使用和C++相似的關鍵字raise、try和except,并有相同的性能,但卻不能釋放堆棧,這是因為堆棧中沒有對象。當然,也可選擇finally關鍵字來讓程序代碼一直執行,而忽視異常的產生。Delphi異常類是從Exception派生的。</P>
<P> Java使用C++一樣的關鍵字,但它的一些行為和Object
Pascal是一致的,包括finally關鍵字。這一點可能是因為Java使用對象引用模型和后臺垃圾回收機制的緣故吧。Java對象的類必須從Throwable類派生。</P>
<P><BR> </P><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0
width=770>
<TBODY>
<TR bgColor=#006699>
<TD align=middle bgColor=#006699 id=white><FONT
color=#ffffff>對該文的評論</FONT></TD>
<TD align=middle>
<SCRIPT src="CSDN_文檔中心_重繼承、接口和異常處理.files/readnum.htm"></SCRIPT>
</TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1
width=770>
<TBODY>
<TR>
<TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16
hspace=1 src="CSDN_文檔中心_重繼承、接口和異常處理.files/ico_pencil.gif" width=16>
</SPAN> yhspring <I>(2001-1-21 9:24:57)</I> </TD></TR>
<TR>
<BR></TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1
width=770>
<TBODY>
<TR>
<TH bgColor=#006699 id=white><FONT
color=#ffffff>我要評論</FONT></TH></TR></TBODY></TABLE></DIV>
<DIV align=center>
<TABLE border=0 width=770>
<TBODY>
<TR>
<TD>你沒有登陸,無法發表評論。 請先<A
href="http://www.csdn.net/member/login.asp?from=/Develop/read_article.asp?id=3568">登陸</A>
<A
href="http://www.csdn.net/expert/zc.asp">我要注冊</A><BR></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
<TBODY>
<TR align=middle>
<TD height=10 vAlign=bottom><A
href="http://www.csdn.net/intro/intro.asp?id=2">網站簡介</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=5">廣告服務</A> - <A
href="http://www.csdn.net/map/map.shtm">網站地圖</A> - <A
href="http://www.csdn.net/help/help.asp">幫助信息</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=2">聯系方式</A> - <A
href="http://www.csdn.net/english">English</A> </TD>
<TD align=middle rowSpan=3><A
href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG
border=0 height=48 src="CSDN_文檔中心_重繼承、接口和異常處理.files/biaoshi.gif"
width=40></A></TD></TR>
<TR align=middle>
<TD vAlign=top>百聯美達美公司 版權所有 京ICP證020026號</TD></TR>
<TR align=middle>
<TD vAlign=top><FONT face=Verdana>Copyright © CSDN.net, Inc. All rights
reserved</FONT></TD></TR>
<TR>
<TD height=15></TD>
<TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--內容結束//--><!--結束//--></BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -