浏览 2235 次
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-01-12
最后修改:2010-01-12
instanceof 针对实例
isAssignableFrom 是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口。
public static void main(String[] args) throws Exception { ArrayList list = new ArrayList(); System.out.println(list instanceof List); System.out.println(list.getClass().isAssignableFrom(List.class)); System.out.println(List.class.isAssignableFrom(list.getClass()));
结果:
我们应该尽量少用instanceof 运算符 应该尽量用多态来替代它
接口 //账目 public interface Accounts { } //水费 public class WaterAccounts implements Accounts { } //电费 public class ElectricityAccounts implements Accounts { } //客户端 public class test { public static void main(String[]args){ Accounts accsWater= new WaterAccounts (); Accounts accsElectricity= new ElectricityAccounts (); acceptAcounts(accsWater); } //第一种使用instanceof public static void acceptAcounts(Accounts accs){ if(accs instanceof WaterAccounts ){ System.out.println("收水费"); }else if(accs instanceof ElectricityAccounts ){ System.out.println("收电费"); } } //第二种使用多态 public static void acceptAcounts(WaterAccounts accs){ System.out.println("收水费"); } public static void acceptAcounts(ElectricityAccounts accs){ System.out.println("收电费"); } }
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |