public static Menu initMenu(){ Menu menu=new Menu(); ClickButton btn1=new ClickButton(); btn1.setName("新生服务"); btn1.setType("click"); btn1.setKey("11"); ViewButton btn2=new ViewButton(); btn2.setName("暑假快乐"); btn2.setType("view"); btn2.setUrl("http://www.imooc.com/"); ClickButton btn3=new ClickButton(); btn3.setName("联系我们"); btn3.setType("location_select"); btn3.setKey("33"); ClickButton btn4=new ClickButton(); btn4.setName("小编微信"); btn4.setType("scancode_push"); btn4.setKey("44"); Button button=new Button(); button.setName("联系我们"); //以下两句都运用向上类型转换 button.setSub_button(new Button[]{btn3,btn4}); menu.setButton(new Button[]{btn1,btn2,button}); return menu; } 解析后的效果 { "button": [ { "key": "11", "name": "新生服务", "sub_button": [], "type": "click" }, { "name": "暑假快乐", "sub_button": [], "type": "view", "url": "http://www.imooc.com/" }, { "name": "联系我们", "sub_button": [ { "key": "33", "name": "联系我们", "sub_button": [], "type": "location_select" }, { "key": "44", "name": "小编微信", "sub_button": [], "type": "scancode_push" } ], "type": "" } ] } 子菜单中的clickButton独有的key和viewButton中独有的url都能解析出来,为什么? 在java中,如果将一个对象进行向上类型转换,那么就不能调用其子类中新增的成员属性和 方法。但是在json解析中,为什么还能够解析出子类中父类没有的属性呢?
求解,我也是同样错误,json解析出来不对
向上转型中可以解析出子类中独有的属性的。你应该去看Java的继承