java向下转型出现错误,ClassCastException

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();
这样才可以转换

好比,中国人继承自人类。
我让你找一个人来,你只有实际找的是中国人,才能让他说中国话。