如何从分机回调摘要 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);
所以我必须创建一个 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);