问答详情
源自:10-3 Java 中的抽象类

没有实例化

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();

	}
}

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

提问者:qq_瞳孔一抹蓝_04076840 2016-12-01 20:49

个回答

  • AINIforever
    2016-12-18 17:43:22

    子类不能加abstract修饰符

  • turbo_elaine
    2016-12-01 21:23:48

    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();

     

        }

    }