//父类无法直接转子类
// Person person = new Person();
// 但是如果创建时候就是子类,这样既可转换,
// 此时的person对象-不过是personchild能力削弱之后的对象,真身还是PersonChild
// Person person = new PersonChild();
// 这时候转换就没任何问题
// PersonChild pc = (PersonChild) person ;
Person person = new Person();
PersonChild pc = new PersonChild() ;
pc.setZhiye("学生");
person = pc;
System.out.println(pc.toString());
// Person person = new Person();
// 但是如果创建时候就是子类,这样既可转换,
// 此时的person对象-不过是personchild能力削弱之后的对象,真身还是PersonChild
// Person person = new PersonChild();
// 这时候转换就没任何问题
// PersonChild pc = (PersonChild) person ;
// System.out.println(pc);
如果创建对象本身就是父类,这时候强制转换子类就会出现类型转换异常
Person person = new Person();
PersonChild pc = (PersonChild) person;
Person person = new Person();
PersonChild pc = new PersonChild() ;
pc.setZhiye("学生");
person = pc;
//因为是子类创建的,并且重写了tostring方法,此时打印person对象它是削弱之后的PersonChild对象,
但是由于重写还是找到的是子类的方法,所以tostring的还是子类的tostring.
System.out.println(pc.toString());