问答详情
源自:10-1 Java 中的多态

想问下12,13行的代码哪里有错,编译器一致显示错误但不知道错那

1 package com.四边形;

2 public class Quadrangle {
3  private int  nextIndex=0;
  4 private Quadrangle[] qtext=new Quadrangle[6];
 5 public void draw(Quadrangle q) {
  6 if (nextIndex<qtext.length) {
   7 qtext[nextIndex]=q;
   8 System.out.println(nextIndex);
  9 nextIndex++;
  }
  
 }

 10 public static void main(String[] args) {
  // TODO Auto-generated method stub
  11Quadrangle q=new Quadrangle();
  //Parallelogramgle p=new Parallelogramgle();
  //Square s=new Square();
  12 q.draw(new Parallelogramgle());
  13 q.draw(new Square());
  
  

 }

 14 public class Parallelogramgle extends Quadrangle{
 15 public Parallelogramgle() {
  16 System.out.println("平行四边形");
 }
}
17 public class Square extends Quadrangle{
 18 public Square() {
  19 System.out.println("正方形");
 }
}
 
}

提问者:年纪轻轻想有猫 2018-07-26 01:42

个回答

  • 嘘___________别说话
    2018-07-27 09:23:48
    已采纳

    不好意思,说错了,你在父类Quadrangle里面创建了子类Parallelogramgle,Square这样是不行的,java中不允许在类里面在创建一个类.https://img2.mukewang.com/5b5a74200001ec1004260596.jpg

  • 嘘___________别说话
    2018-07-27 10:56:53

    含有main方法的类的.java文件名改为Test1.java


  • 嘘___________别说话
    2018-07-27 10:55:41

    在以前的包下  .java   文件的文件名改了吗

  • 嘘___________别说话
    2018-07-27 09:24:11

    修改如上

  • 嘘___________别说话
    2018-07-27 09:07:09

    另外说明一下,包名最好不要用汉语

  • 嘘___________别说话
    2018-07-27 09:04:47

    12 13  q是父类对象,draw方法里面传的参数是Quadrangle类型的,你传进的参数是Parallelogramgle,Square类型,虽然是子父类关系,但编译时会报错

  • qq_焦焦_0
    2018-07-26 09:46:19

    12 13行。你在主类中创建的对象是父类的对象,父类的对象是不可以调用子类特有而父类自己没有的方法