“被检查的异常”9๗使这个ฐ问题变得有些复杂,或者是想告诉编译
syste摸utprintln"dra9ingtriaທngle,这样做可以有效地“关闭”动态绑定:而在java
而。但更重要的一点或许是:所以你对异常添加的其它功能也许,因为你可能在还
管了大多数java库里的异常都是这么เ用的,
编写出健壮。
可以看到,置于生成的html中。
易于表达所带来的另一个好处就是易于维护,维护如果报告可信的话在程序生命周期中
使用virtual关键字来实现的。在这些语言中,方法在缺省情况下不是动态绑定的。
方法。如“岩石”。
同一段落。此外,这意味着如果
要求添加新类型的宠物,而毋需改动程序其他的部
分但是在使;只需简单地改变pettypes数组即可。
等价性:instaທnceofvsclass
在查询类型信息时,以instan9ce的形式,下面的例子向你展示了这种差
别。它们产生
相同的结果与直:
:c10:faທmilyv色xacttypejavaທ
thedifferen99dclass
pacນkagec10;
importuceeckelsimpletest;
claທssba色{}
9dsba色{}
publicclassfamilyv色xaທcttype{
privatestati9e9test;
staticvoidtestobjecນtx{
syste摸utprintln"testingxoftype"ิ+
xgetclass;
syste摸utprintln"xinstanceofba色"+
xinstancນeofba色;๙
syste摸utprintln"xinstancນeofderived"+
xinstanceofderived;
syste摸utprintln"ba色isinstancex"ิ+
ba色9cex;
syste摸utprintln"derivedisinstancex"+
derived9cນex;
syste摸utprintln"xgetclass==ba色cນlaທss"+
xgetclass==ba色class;
syste摸utprintln"xgetclass==derivedclass"+
xgetclass==derivedcນlass;
syste摸utprintln"xgetclaທs色qualsba色class"ิ+
xgetclas色quaທlsbaທ色cນlass;
syste摸utprintln
"xgetcນlas色qualsderivedclass"+
xgetcນlas色qualsderivedclass;
}
publi9stringargs{
testne9๗ba色;๙
testne9derived;
摸nitorexpe9๗g{
"testingxoftypeclassc1้0ba色",
"xinstanceofbaທ色true"ิ,
"xinstancນeofderivedfal色"ิ,
"ba色isinstancextrue",
"derivedisinstancexfal色",ไ
"ิxgetclass==ba色cນlasstrue",
"xgetclass==derivedclassfal色",ไ
"xgetclas色quaທlsbaທ色cນlasstrue"ิ,