我用抽象類寫了個代碼,但是在主函數提示不能實例化
主函數
package com.Shape;
import java.util.Scanner;
public class T {
?public static void main(String[] args) {
??// TODO Auto-generated method stub
??
??Circle obj1=new Shape();//提示不能實例化Shape
??
??obj1.mianji();
??
?}
}
父類
package com.Shape;
import java.util.Scanner;
public abstract? class Shape {
?? public abstract? double? mianji();
??
}
子類
package com.Shape;
import java.math.*;
import java.util.Scanner;
public abstract? class Circle extends Shape {
?double mj;
?double r;
?@Override
?public? double mianji() {
??// TODO Auto-generated method stub
??System.out.println("請輸入圓的半徑:");
??Scanner in=new Scanner(System.in);
??double r=in.nextDouble();
??mj=Math.PI*(r*r);
??System.out.println("圓的面積:"+mj);
??return r;
??
?}
2017-06-07
我剛查了一下抽象類的實例化要通過父類的引用來指向子類的實例來間接地實現父類的實例化,我還沒看到抽象這里,等了解了再來回答
2017-06-07
? 你把不能實例化的那句話換成這個試試 mianji ?obj1 = new mianji();
2017-06-06
public abstract? class Circle extends Shape {,你把你的子類也定義成抽象類了,抽象類不能實例化對象的;所以報錯了。
2017-06-06
Circle obj1=new Shape();子類不能這樣由父類去實例化,而且抽象類沒有構造函數;而父類可以通過子類去實例化對象如:Shape shape=new Circle()。