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解析中,为什么还能够解析出子类中父类没有的属性呢?