如何从分机回调摘要 class

How to call back to an Abstract class from extension

所以我必须创建一个 class 来扩展摘要 class 并列出家庭作业的类型和正在使用的页面。但是,我不完全理解如何回调阅读的页面和家庭作业的类型,同时还使用 createAssignment correctly.This 创建一个是我目前所拥有的,但它似乎没有工作。感谢任何帮助。

public abstract class Homework
{
    public abstract int pagesRead();
    public abstract String typeHomework();
    public abstract void createAssignment(int p);
}

public class MyMath extends Homework
{
    public abstract void createAssignment(int p, String t)
    {
       p = 5;
       t = "Math";
    }

}

您的代码已通过语法修复重新格式化:

public abstract class Homework
{
    public abstract int pagesRead();
    public abstract String typeHomework();
    public abstract void createAssignment(int p, String t);
}

public class MyMath extends Homework
{
    public void createAssignment(int p, String t)
    {
        p = 5;
        t = "Math";
    }
}

您还必须实现其他两个抽象方法。

并且分配给方法的参数没有意义 :-) 我猜您想将它们分配给 MyMath 实例中的变量。

我还没有测试过。有帮助吗?

我通过将其中一个抽象化来编辑这两个程序,但没有用,所以它们都是抽象的,createAssignment 现在无效。这现在有效。感谢您提供格式化指针。

public abstract class Homework
{
public abstract int pagesRead();
public abstract String typeHomework();
public abstract void createAssignment(int p);

}

 public abstract class MyMath extends Homework
{
 public void createAssignment(int p, String t)
 {
  p = 5;
  t = "Math";
}

}

考虑到你的上一个问题和这个问题,你显然不理解抽象的概念。

当您在 Homework class 上定义 public abstract void createAssignment(int p); 时,您说的是 "any concrete class (read not abstract) extending this class should implement this method",但在具体的 class 上,您再次尝试实施使用 abstract 关键字的相同方法,只是具有不同的签名,这是错误的。

要么删除 abstract 关键字并更改签名:

  public void createAssignment(int p, String t) {
    p = 5;
    t = "Math";
  }

或者实现抽象方法:

 @Override
  public void createAssignment(int p) {

  }

请记住,您必须实现在 Homework 中定义的所有抽象方法,除非您也将 MyMath 抽象化。如果你只是重载它,这算作实现 createAssignment(int p) "again"。

这很简单,伙计:

首先,您需要实现抽象方法:

public class MyMath extends Homework {
    public int pagesRead(){
       return 3; // any number that you want
    }

    public String typeHomework(){
       return "My math homework"; // any text for the homework
    }

    public void createAssignment(int p){
       // do anything with p 
    }
}

如我所见,我猜您正在尝试使用一种方法来填充字段值:

public class MyMath extends Homework {

   private int p;
   private String homeworkContent;

    public int pagesRead(){
       return p;
    }

    public String typeHomework(){
       return homeworkContent; // any text for the homework
    }

    public void createAssignment(int p, String homeworkContent){
      this.p = p;
      this.homeworkContent = homeworkContent;
   }
}

但是,请记住,您应该将方法从家庭作业更改为:

public abstract void createAssignment(int p, String homeworkContent);