//: CatsAndDogs.java
// Simple collection example (Vector)
import java.util.*;class Cat {
private int catNumber;
Cat(int i) {
catNumber = i;
}
void print() {
System.out.println("Cat #" + catNumber);
}
}class Dog {
private int dogNumber;
Dog(int i) {
dogNumber = i;
}
void print() {
System.out.println("Dog #" + dogNumber);
}
}public class CatsAndDogs {
public static void main(String[] args) {
Vector cats = new Vector();
for(int i = 0; i < 7; i++)
cats.addElement(new Cat(i));
// Not a problem to add a dog to cats:
cats.addElement(new Dog(7));
for(int i = 0; i < cats.size(); i++)
((Cat)cats.elementAt(i)).print();
// Dog is detected only at run-time
}
} ///:~
((Cat)cats.elementAt(i)).print();这句cat是强制转换啊?
但输出只有7个,不是8个啊??????
// Simple collection example (Vector)
import java.util.*;class Cat {
private int catNumber;
Cat(int i) {
catNumber = i;
}
void print() {
System.out.println("Cat #" + catNumber);
}
}class Dog {
private int dogNumber;
Dog(int i) {
dogNumber = i;
}
void print() {
System.out.println("Dog #" + dogNumber);
}
}public class CatsAndDogs {
public static void main(String[] args) {
Vector cats = new Vector();
for(int i = 0; i < 7; i++)
cats.addElement(new Cat(i));
// Not a problem to add a dog to cats:
cats.addElement(new Dog(7));
for(int i = 0; i < cats.size(); i++)
((Cat)cats.elementAt(i)).print();
// Dog is detected only at run-time
}
} ///:~
((Cat)cats.elementAt(i)).print();这句cat是强制转换啊?
但输出只有7个,不是8个啊??????
为什么要8个 7个不好吗
但是 你最后一个元素是 Dog类的对象 cats.elementAt(7)即是一个Dog对象 你要强制转换成 Cat对象 肯定有一个异常咯 ClassCastException 类转换异常