loops - 继承、增强循环和数组列表运行不正常
问题描述
我正在尝试在这里整理一些东西,但它无法正常工作。我认为每次通过循环,循环都会为每个类成员更新和继承。相反,它打印了 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();
}
}
有人可以帮助我理解我做错了什么。我应该制作这些所有静态方法吗?
解决方案
问题是toolband中的noise方法是静态的。在java中静态方法没有被覆盖。
为了使这项工作更改噪声方法签名为 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");
}
}
推荐阅读
- karate - 当有多个同名字段时,如何匹配字段值作为响应?
- node.js - “无法读取未定义的属性'user_id'”与 Heroku 上的快速会话
- java - 映射嵌套元素 - Mapstruct
- php - 从网络计算机访问时,phpMyAdmin 停止工作
- python - 更改组合框选项以修改图形/图表
- android - Flutter,Sqflite - DatabaseException(没有这样的表:项目......)
- javascript - 切换语句总是返回反应 js 中的最后一个案例
- javascript - 是否可以使用 Selenium Webdriver 激活 Firefox 或 Chrome 的阅读模式?
- android - 尝试在 QtCreator 中的 x86-64 AVD 上运行 x86-64 APK 时的 INSTALL_FAILED_NO_MATCHING_ABIS
- docker - 无法从 jenkins docker 代理连接到 docker 守护进程