里氏替换原则:
把子类类型赋值给父类类型,发生隐形转换。
把父类类型变量赋值给子类类型,需要显示类型转换。
前提是如果这个父类类型变量p中,指向的确实是一个子类对象,则可以显示类型转换,如果p指向的不是Chinese,则显示转换会报异常。(失败)
Chinese cn=new Chinese();
cn.ClassId="001";
Person p=cn;
Chinese cn1=(Chinese) p;