一個抽象類具有可變和method.A類如下擴展抽象類:抽象類變量與繼承
abstract class shape
{
int area;
void printArea(){System.out.println("Area = "+area);}
}
class circle extends shape
{
int r;
circle(int a){r = a;}
area=r*r;//line 22
}
public class Abstraction{
public static void main(String[] args) {
circle c=new circle(10);
c.printArea();
}
}
線22給出了一個彙編error.But如果這條線移動到構造它編譯的類別
class circle extends shape
{
int r;
circle(int a){r = a;area=r*r;}
}
這是什麼行爲?
這確實公頃與抽象類無關。問題在於,Java語法要求您將方法(或構造方法)體內或靜態初始化塊內部的賦值放入其他地方聲明的變量(在您的案例中爲'area')。 –
@MickMnemonic但是可以直接在派生類中使用繼承的變量。不是嗎? – Pradeep
@Pradeep是和你正在使用它..在構造函數 –