由於Super Class對象不能在主函數中實例化,abstract class在類名前面指定。但是,如果在SuperClass之前使用abstract關鍵字, -riding方法或不使用。有人可以解釋嗎?Super Class方法在超越方法之前的抽象關鍵字
這是下面的例子,請檢查註釋部分。
abstract class Figure
{
int dim1;
int dim2;
Figure()
{
dim1=-1;
dim2=-1;
}
Figure(int p,int q)
{
dim1=p;
dim2=q;
}
abstract void Area() //This line is working without abstract for me.
{
System.out.println("The area is undefined.");
}
}
class Rectangle extends Figure
{
int vol;
Rectangle()
{
super();
}
Rectangle(int p,int q)
{
super(p,q);
}
void Area()
{
vol=dim1*dim2;
System.out.println("The area of the rectangle is: "+vol);
}
}
class Triangle extends Figure
{
int vol;
Triangle()
{
super();
}
Triangle(int p,int q)
{
super(p,q);
}
void Area()
{
vol=dim1*dim2/2;
System.out.println("The area of the rectangle is: "+vol);
}
}
public class Area
{
public static void main(String[] args)
{
Rectangle r=new Rectangle(10,20);
Triangle t=new Triangle(6,10);
Figure fref;
fref=r;
r.Area();
fref=t;
t.Area();
}
}
這個人問爲什麼要讓這個類抽象,當你已經至少使其一個方法抽象時。這是因爲你不能用抽象方法實例化一個類,因此不能用類級抽象實例化類。 – 2012-02-07 15:29:41
@AndreiBodnarescu:如果你已經完全理解OP的問題,那你比我做得更好:) – 2012-02-07 15:32:39