class Person{
public void say(){
System.out.println("Person");
}
}class Student extends Person{
@Override
public void say(){
System.out.println("Student");
}
}
public class Pet { public static void main(String[] args) {

Person p = new Person();
if(p instanceof Person){
((Student)p).say();
}
}}
请问为什么会抛出ClassCastException

解决方案 »

  1.   

    class Person {
    public void say() {
    System.out.println("Person");
    }
    }class Student extends Person {
    @Override
    public void say() {
    System.out.println("Student");
    }
    }public class Pet { public static void main(String[] args) { Person p = new Student();
    if (p instanceof Person) {
    ((Student) p).say();
    }
    }}
      

  2.   

    Person p = new Person();
    if(p instanceof Person){
    ((Student)p).say();
    }
    ==>Person p = new Student();
    if(p instanceof Student){
    ((Student)p).say();
    }