public class Test {
public static void main(String[] args) {
Person p=new Chinese();
System.out.println(new Chinese().age);//子类的对象调用子类的属性
System.out.println(new Chinese().name);
System.out.println(p.age); //父类引用指向子类的对象,在对象new的同时进行了Person p=(Person)new Chinese();的操作
System.out.println(p.name);//也就是像int n=‘a’;一样,低级向高级自动转换。而高级想低级需要强制转换,
//但只有上转型的对象才能进行强制转换,直接的父类对象不能强专子类。
//倘若对直接的父类对象进行强制转换,没有语法错误,但编译时会出现异常
//Person cannot be cast to Chinese(父类类型不能被铸造为子类类型)
Chinese ch=(Chinese)p;//上转型对象可以进行强制转换,直接的父类对象不能强专成子类的对象。
System.out.println(new Chinese().age);
System.out.println(new Chinese().name);
System.out.println(ch.age);
System.out.println(ch.name);
}
public static void main(String[] args) {
Person p=new Chinese();
System.out.println(new Chinese().age);//子类的对象调用子类的属性
System.out.println(new Chinese().name);
System.out.println(p.age); //父类引用指向子类的对象,在对象new的同时进行了Person p=(Person)new Chinese();的操作
System.out.println(p.name);//也就是像int n=‘a’;一样,低级向高级自动转换。而高级想低级需要强制转换,
//但只有上转型的对象才能进行强制转换,直接的父类对象不能强专子类。
//倘若对直接的父类对象进行强制转换,没有语法错误,但编译时会出现异常
//Person cannot be cast to Chinese(父类类型不能被铸造为子类类型)
Chinese ch=(Chinese)p;//上转型对象可以进行强制转换,直接的父类对象不能强专成子类的对象。
System.out.println(new Chinese().age);
System.out.println(new Chinese().name);
System.out.println(ch.age);
System.out.println(ch.name);
}