📄 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( )
{ // the bat flies... }<BR>}</P>
<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>
<TD bgColor=#ffffff colSpan=3 width=532><BR>挺好的,要是详细一些就更好了。
<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 + -