Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 继承、增强循环和arraylist未正确运行_Loops_Inheritance_Arraylist - Fatal编程技术网

Loops 继承、增强循环和arraylist未正确运行

Loops 继承、增强循环和arraylist未正确运行,loops,inheritance,arraylist,Loops,Inheritance,Arraylist,我试着把一些东西放在一起,但它不能正常工作。我认为每次通过循环,循环都会为每个类成员更新和继承。相反,它将“成员”方法打印4次 import java.util.ArrayList; public class toolband { public static void noise() { System.out.println("abc"); } static class member extends toolband { public sta

我试着把一些东西放在一起,但它不能正常工作。我认为每次通过循环,循环都会为每个类成员更新和继承。相反,它将“成员”方法打印4次

import java.util.ArrayList;

public class toolband
{
    public static void noise()
    {
        System.out.println("abc");
    }

static class member extends toolband
{

    public static void noise()
    {
        System.out.println("xyz");
    }
}

static class maynard extends member
{
String namemaynard = "maynard";

public static void noise() 
    {
        System.out.println("pow pow");
    }
}

static class adam extends member
{
    String nameadam = "adam";
    public static void noise() 
    {
        System.out.println("da dun da dun");
    }
}
static class danny extends member
{
    String namedanny = "danny";
    public static void noise()
    {
        System.out.println("smash smash smash");
    }
}
static class justin extends member
{
    String namejustin = "justin";
    public static void noise()
    {
        System.out.println("womp wa wa wo wo womp");
    }
}

public static void main (String [] args)
{
ArrayList <member> members = new ArrayList <member> (4);

member m = new maynard();
member a = new adam();
member d = new danny();
member j = new justin();

members.add(m);
members.add(a);
members.add(d);
members.add(j);

for (member i : members)
i.noise();

}
}
import java.util.ArrayList;
公共类工具带
{
公共静态空隙噪声()
{
系统输出打印号(“abc”);
}
静态类成员扩展了toolband
{
公共静态空隙噪声()
{
System.out.println(“xyz”);
}
}
静态类maynard扩展了成员
{
字符串名称maynard=“maynard”;
公共静态空隙噪声()
{
系统输出打印项次(“pow pow”);
}
}
静态类adam扩展成员
{
字符串名称adam=“adam”;
公共静态空隙噪声()
{
System.out.println(“da dun da dun”);
}
}
静态类成员
{
字符串名称danny=“danny”;
公共静态空隙噪声()
{
System.out.println(“smash-smash”);
}
}
静态类justin扩展了成员
{
字符串名称justin=“justin”;
公共静态空隙噪声()
{
System.out.println(“womp wa wo womp”);
}
}
公共静态void main(字符串[]args)
{
ArrayList成员=新的ArrayList(4);
成员m=新梅纳德();
成员a=新的adam();
成员d=新成员();
成员j=新的justin();
成员.添加(m);
成员.添加(a);
成员.添加(d);
成员.添加(j);
代表(成员一:成员)
i、 噪音();
}
}

有人能帮我理解我做错了什么吗。我应该创建这些静态方法吗?

问题是,toolband中的noise方法是静态的。在java中,静态方法不会被重写。

public class toolband {
    public void noise() {
        System.out.println("abc");
    }
}

class member extends toolband {

    public void noise() {
        System.out.println("xyz");
    }
}

class maynard extends member {
    String namemaynard = "maynard";

    public void noise() {
        System.out.println("pow pow");
    }
}

class adam extends member {
    String nameadam = "adam";

    public void noise() {
        System.out.println("da dun da dun");
    }
}

class danny extends member {
    String namedanny = "danny";

    public void noise() {
        System.out.println("smash smash smash");
    }
}

class justin extends member {
    String namejustin = "justin";

    public void noise() {
        System.out.println("womp wa wa wo wo womp");
    }

}
要完成此工作,请将noise方法签名更改为public void noise(),并在重写的子类中更改为public void noise(),然后它就可以工作了。

public class toolband {
    public void noise() {
        System.out.println("abc");
    }
}

class member extends toolband {

    public void noise() {
        System.out.println("xyz");
    }
}

class maynard extends member {
    String namemaynard = "maynard";

    public void noise() {
        System.out.println("pow pow");
    }
}

class adam extends member {
    String nameadam = "adam";

    public void noise() {
        System.out.println("da dun da dun");
    }
}

class danny extends member {
    String namedanny = "danny";

    public void noise() {
        System.out.println("smash smash smash");
    }
}

class justin extends member {
    String namejustin = "justin";

    public void noise() {
        System.out.println("womp wa wa wo wo womp");
    }

}

非常感谢。我比你高,但因为我是新来的,所以没有记录。非常感谢你的帮助