我用抽象類寫了個(gè)代碼,但是在主函數(shù)提示不能實(shí)例化
主函數(shù)
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();//提示不能實(shí)例化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("請(qǐng)輸入圓的半徑:");
??Scanner in=new Scanner(System.in);
??double r=in.nextDouble();
??mj=Math.PI*(r*r);
??System.out.println("圓的面積:"+mj);
??return r;
??
?}
2017-06-07
我剛查了一下抽象類的實(shí)例化要通過父類的引用來指向子類的實(shí)例來間接地實(shí)現(xiàn)父類的實(shí)例化,我還沒看到抽象這里,等了解了再來回答
2017-06-07
? 你把不能實(shí)例化的那句話換成這個(gè)試試 mianji ?obj1 = new mianji();
2017-06-06
public abstract? class Circle extends Shape {,你把你的子類也定義成抽象類了,抽象類不能實(shí)例化對(duì)象的;所以報(bào)錯(cuò)了。
2017-06-06
Circle obj1=new Shape();子類不能這樣由父類去實(shí)例化,而且抽象類沒有構(gòu)造函數(shù);而父類可以通過子類去實(shí)例化對(duì)象如:Shape shape=new Circle()。