它的輸出是怎麼來的?我懷疑是否在兩種情況下都創建了哪個類。我是java中的新成員,請簡單介紹一下對象實例化過程。 在這個程序中,我期望輸出爲150,但ans in = s 90. 方法和數據變量如何訪問差異?您能否介紹一下代碼之間的區別
程序1:
class Bike
{
int speedlimit=90;
}
class Honda3 extends Bike
{
int speedlimit=150;
public static void main(String args[])
{
Bike obj=new Honda3();
System.out.println(obj.speedlimit);//90
}
}
程序2:
class Bike
{
int speedlimit=90;
void display()
{
System.out.println(speedlimit);
}
}
class Honda3 extends Bike
{
int speedlimit=150;
void display()
{
System.out.println(speedlimit);
}
public static void main(String args[])
{
Bike obj=new Honda3();
obj.display();
}
}
解釋這兩個碼之間的差異。 在程序1中,創建了對象Honda3
,並將其指定給Bike
類型的obj。我不明白超類方法是如何執行的?
字段不是多態的。當你訪問'Bike'的引用上的'obj.speedlimit'時,無論在'Bike'的具體子類中是否存在一個名爲'speedlimit'的字段,都會得到'Bike.speedlimit'。 –