为了账号安全,请及时绑定邮箱和手机立即绑定

我用抽象类写了个代码,但是在主函数提示不能实例化

主函数

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;
  

 }

正在回答

4 回答

我刚查了一下抽象类的实例化要通过父类的引用来指向子类的实例来间接地实现父类的实例化,我还没看到抽象这里,等了解了再来回答

0 回复 有任何疑惑可以回复我~

  你把不能实例化的那句话换成这个试试 mianji  obj1 = new mianji();

0 回复 有任何疑惑可以回复我~

public abstract  class Circle extends Shape {,你把你的子类也定义成抽象类了,抽象类不能实例化对象的;所以报错了。


0 回复 有任何疑惑可以回复我~

Circle obj1=new Shape();子类不能这样由父类去实例化,而且抽象类没有构造函数;而父类可以通过子类去实例化对象如:Shape shape=new Circle()。

0 回复 有任何疑惑可以回复我~
#1

咩7 提问者

我之前写的是你那样的 ,忘改了 。但是也提示错误啊
2017-06-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我用抽象类写了个代码,但是在主函数提示不能实例化

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信