正在加载图片...
Thinking in Java 3 Edition 在将x转换成Dog之前,讦语句会先看看x对象是不是Dog类的。如 果没有其它信息能告诉你这个对象的类型,那么在下传之前先用 instanceof检查一下是很重要的;否则的话,你就很有可能会撞上 Class castException。 通常情况下,你只是要找一种类型(比如把三角形都变成紫色的),但是你 也可以用 instanceof标出所有对象的类型。假设你有一个Pet类系 package cl0 public class pet ()///: v package cl0 lic class Dog extends Pet ()/// //: c10: Pug. java package Cl0; public class Pug extends Dog ()/// package cl0 public class Cat extends Pet ()/// 77: c10: Rodent. java package cl0 public class Rodent extends Pet (/// package cl0; public class Gerbil extends Rodent ()/// package cl0 public class Hamster extends Rodent [1///: 第7页共17页 www.wgqqh.com/shhgs/tij.htmlThinking in Java 3rd Edition 第 7 页 共 17 页 www.wgqqh.com/shhgs/tij.html email:shhgs@sohu.com ((Dog)x).bark(); 在将 x 转换成 Dog 之前,if 语句会先看看 x 对象是不是 Dog 类的。如 果没有其它信息能告诉你这个对象的类型,那么在下传之前先用 instanceof 检查一下是很重要的;否则的话,你就很有可能会撞上 ClassCastException。 通常情况下,你只是要找一种类型(比如把三角形都变成紫色的),但是你 也可以用 instanceof 标出所有对象的类型。假设你有一个 Pet 类系: //: c10:Pet.java package c10; public class Pet {} ///:~ //: c10:Dog.java package c10; public class Dog extends Pet {} ///:~ //: c10:Pug.java package c10; public class Pug extends Dog {} ///:~ //: c10:Cat.java package c10; public class Cat extends Pet {} ///:~ //: c10:Rodent.java package c10; public class Rodent extends Pet {} ///:~ //: c10:Gerbil.java package c10; public class Gerbil extends Rodent {} ///:~ //: c10:Hamster.java package c10; public class Hamster extends Rodent {} ///:~
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有