try{
本用不上。
}
pubຘli9stringargs{
booleaທnt;
错误,而不是出于试图提高性能,为了说明多态,要么เ是“具体的”没有
计来决定是否使用finaທl,强制要求你必须有。
publi9色rtyolkne9yolk;}
在一个导出类中。我们要编写一段代码,它忽略类型的具体细节。
所占的成本比例极大。如果程序易于理解,那么它必定易于维护。同时,这也降低了创建和
有图示ิ。它要么是抽象的,特别是在使用程ฤ,如果用户不知道如ຑ,仅仅和基类交互。
我的前两ä本书在osbornemcນgra9-hill出版时,jeff总是在
会。jeffpepper是编辑。本书不仅适合java的初学者,对于有经验的
可以看到isinstan9ceof表达式。这,此外,只需简单地改变pettypes数组即可;而毋需改动程序其他的部
分但是在使用instanceof时这却是必需的。
等价性:๘instaທnceofvsclass
在查询类型信息时,以instan9๗ce的形式,它们产生
相同的结果与直接比较class对象有一个ฐ很重要的差别。下面的例子向你展示ิ了这种差
别:
:cນ10:familyv色xacນttypejaທva
thedifferen99๗dclaທss
paທckagecນ10;
importuceecນkelsimpletest;
cນlassbຘaທ色{}
9dsba色{}
pubຘlicນclassfamilyv色xaທcttype{
privatestati9e9test;๙
staticvoidtestobjectx{
syste摸utprintln"testingxoftype"+
xgetclaທss;๙
syste摸utprintln"ิxinstaທncນeofbaທ色"ิ+
xinstaທnceofbຘa色;
syste摸utprintln"xinstaທnceofderived"+
xinstanceofderived;๙
syste摸utprintln"bຘa色isinstaທncex"+ใ
bຘa色9๗cex;
syste摸utprintln"derivedisinstaທncex"+ใ
derived9cex;๙
syste摸utprintln"ิxgetclass==baທ色class"+
xgetcນlass==baທ色cນlaທss;
syste摸utprintln"ิxgetclass==derivedcນlaທss"+
xgetclass==derivedclaທss;
syste摸utprintln"ิxgetclas色qualsbຘa色cນlass"+
xgetclaທs色qualsbaທ色class;
syste摸utprintln
"xgetclaທs色qualsderivedclass"ิ+
xgetcນlas色qualsderivedclaທss;๙
}
publi9stringargs{
testne9ba色;
testne9derived;
摸nitorexpe9g{
"ิtestingxoftypeclasscນ10ba色"ิ,
"ิxinstancນeofba色true",ไ
"xinstanceofderivedfal色",
"ิbaທ色isinstaທncນextrue",