相关疑难解决方法(0)

为什么Java不允许覆盖静态方法?

为什么不能覆盖静态方法?

如果可能,请举例说明.

java static static-methods overriding

519
推荐指数
14
解决办法
26万
查看次数

我可以在Java中覆盖和重载静态方法吗?

我想知道:

  1. 为什么不能在Java中覆盖静态方法?
  2. Java中是否可以重载静态方法?

java static overriding overloading

58
推荐指数
5
解决办法
20万
查看次数

是否可以覆盖派生类中的静态方法?

我有一个在基类中定义的静态方法,我想在其子类中重写此方法,是否可能?

我尝试了这个,但它没有像我预期的那样工作.当我创建类B的实例并调用其callMe()方法时,将调用类A中的静态foo()方法.

public abstract class A {
  public static void foo() {
    System.out.println("I am base class");
  }

  public void callMe() {
    foo();
  }
}

Public class B {
  public static void foo() {
      System.out.println("I am child class");
  }
}
Run Code Online (Sandbox Code Playgroud)

java static

11
推荐指数
2
解决办法
2万
查看次数

java接口中的静态方法

据我所知,你不能在接口体中声明静态方法.但是,我不小心在http://docs.oracle.com/网站上发现了一些特殊的代码.这是链接

Namelly

public interface TimeClient 
{
void setTime(int hour, int minute, int second);
void setDate(int day, int month, int year);
void setDateAndTime(int day, int month, int year,
                           int hour, int minute, int second);
LocalDateTime getLocalDateTime();

static ZoneId getZoneId (String zoneString) {
    try {
        return ZoneId.of(zoneString);
    } catch (DateTimeException e) {
        System.err.println("Invalid time zone: " + zoneString +
            "; using default time zone instead.");
        return ZoneId.systemDefault();
    }
}

default ZonedDateTime getZonedDateTime(String zoneString) {
    return ZonedDateTime.of(getLocalDateTime(), getZoneId(zoneString));
    }
} …
Run Code Online (Sandbox Code Playgroud)

java static-methods interface

7
推荐指数
4
解决办法
1万
查看次数