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

没有实例化

package math;

public class all {

	public abstract class shape {
		public abstract  void area();
		public abstract  void perimeter(); 
	}
	
	public abstract class circle extends shape {
		double r = 2.2;
	    public void area(){
		 System.out.println("circle area is "+3.14*r*r);
	    }
	    public void perimeter(){
	    	System.out.println("circle perimete is "+2*r*3.14);
	    }
		
	}

	public abstract class rectangle extends shape {
		double a=1.0;
		double b=1.0;
		public void area(){
			System.out.println("rectangle ares is"+a*b);
		}
		public void perimeter(){
			System.out.println("recrangle perimeter is "+2*(a+b));
		}

	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
	    shape area1 = new circle();//这里显示错误,Cannot instantiate the type circle

		area1.perimeter();
	        area1.area();
	    shape area2 = new rectangle();//这里显示错误,Cannot instantiate the type rectangle
		area2.perimeter();
		area2.area();

	}
}

问一下这个情况该怎么解决。找不到解决方法,谢谢

正在回答

2 回答

子类不能加abstract修饰符

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

public abstract class shape {

        public abstract  void area();

        public abstract  void perimeter(); 

    }

     

    public abstract class circle extends shape {

        double r = 2.2;

        public void area(){

         System.out.println("circle area is "+3.14*r*r);

        }

        public void perimeter(){

            System.out.println("circle perimete is "+2*r*3.14);

        }

         

    }

 

    public abstract class rectangle extends shape {

        double a=1.0;

        double b=1.0;

        public void area(){

            System.out.println("rectangle ares is"+a*b);

        }

        public void perimeter(){

            System.out.println("recrangle perimeter is "+2*(a+b));

        }

 

    }

 

public class test{

public static void main(String[] args) {

        // TODO Auto-generated method stub

        shape area1 = new circle();//这里显示错误,Cannot instantiate the type circle

 

        area1.perimeter();

            area1.area();

        shape area2 = new rectangle();//这里显示错误,Cannot instantiate the type rectangle

        area2.perimeter();

        area2.area();

 

    }

}

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

qq_瞳孔一抹蓝_04076840 提问者

不对哦,问题在子类中给加了abstract,删掉这个就好了,不过还是谢谢你的解答
2016-12-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530629    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

没有实例化

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