關(guān)于屬性繼承如下
public class car(){
int num;
String name;
public car(){
System.out.println("這個是父類的方法");
}
public class?bus extends car{
public bus(){
System.out.println(name+"上乘坐"+num);
}
public class demo(){
car a=new bus();
a.num=10;
a.name="xiaomi";
}
}
問什么運行出來是name和num是空
}
2017-01-18
很簡單,這個題目出來的值為空,并不是因為賦值失敗,而是因為構(gòu)造函數(shù)先執(zhí)行了,你創(chuàng)建對象的時候就執(zhí)行構(gòu)造函數(shù),所以先Sys出屬性值,當時還沒有被復制,當然是初始值的空了。然后才執(zhí)行到賦值。
解決的方法很簡答, 你在 class car里再寫一個方法
public void show(){
System.out.println(name+"上乘坐"+num);
}
然后主函數(shù)main 在最下面調(diào)用
a.show();
出來的就是:
xiaomi上乘坐10
2017-01-07
public class demo{
public static void main(String[] args)
{
? ? ? ? car1 a=new bus();
? ? ? ?
}
}
2017-01-07
public class bus extends car1?
{
? ? public bus()
? ? {
super(14,"xiaomi");
? ? ? ? System.out.println(name+"上乘坐"+num);
? ? }
}
2017-01-07
public class car1?
{
? ? int num;
? ? String name;
? ? public car1(int num,String name)
{
this.num=num;
this.name=name;
? ?
? ? System.out.println("這個是父類的方法"+name);
? ? }