[英]java abstract class usage
嗨,我正在嘗試在Eclipse中執行此代碼。
abstract class ShapeNew {
int length;
public abstract double area();
}
class Rect extends Shape{
Rect(int side){
this.length = side;
}
public double area(){
System.out.println("area of rectangle"+ length*length);
return length*length;
}
/**
* @param args
*/
public static class Area{
public static void main(String[] args) {
// TODO Auto-generated method stub
ShapeNew rect = new Rect(32);// I am unable to use this. The eclipse throws an error//
rect.area();
}
}
誰能幫助我。 為什么我無法將ShapeNew的引用分配給Rect。的對象? 我得到這個錯誤
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from Rect to ShapeNew
您有一個錯字:您需要從定義的類中擴展:
class Rect extends ShapeNew {
(同樣,鑒於區域函數的長度為平方,看來您實現的是正方形而不是矩形)。
我認為這是一個簡單的錯字。 您的抽象類名稱在第1行是ShapeNew,並且您正在嘗試獲取Shape的新實例。 將Shape更改為ShapeNew
您必須替換此行:
class Rect extends Shape
通過
class Rect extends ShapeNew
abstract class ShapeNew {
int length;
public abstract double area();
}
class Rect extends ShapeNew{
Rect(int side){
this.length = side;
}
public double area(){
System.out.println("area of rectangle"+ length*length);
return length*length;
}
}
public class Area{
public static void main(String[] args) {
// TODO Auto-generated method stub
ShapeNew rect = new Rect(32);
rect.area();
}
}
您收到錯誤是因為您的絕對類是: ShapeNew
並且您從錯誤的名稱Shape
繼承了子類。
因此,只需將此名稱更改為ShapeNew。
class Rect extends ShapeNew{
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.