package main;
class A{
public A() {
print();
}
public void print() {
System.out.println("A");
}
}
class B extends A{
@Override
public void print() {
System.out.println("B");
}
public void ss() {
System.out.println("ss");
}
}
class C extends A{
@Override
public void print() {
System.out.println("C");
}
public void cc() {}
}
public class test1 {
public static void main(String[] args) {
A a = new A();
B b = (B)a;
b.ss();
}
}
显示为:
A
Exception in thread "main" java.lang.ClassCastException: main.A cannot be cast to main.B
at main.test1.main(test1.java:31)
A a = new A();
因为new A(),也就是a实际是一个A的对象,不能转换为B
要写
A a = new B();
这样才可以转换
好比,中国人继承自人类。
我让你找一个人来,你只有实际找的是中国人,才能让他说中国话。