相关疑难解决方法(0)

为什么继承类静态方法而不继承接口静态方法?

我知道在Java中,静态方法就像实例方法一样继承,不同之处在于,当重新声明它们时,父实现被隐藏而不是被覆盖.好吧,这很有道理.但是,Java教程指出了这一点

接口中的静态方法永远不会被继承.

为什么?常规和接口静态方法有什么区别?

当我说静态方法可以继承时,让我澄清一下我的意思:

class Animal {
    public static void identify() {
        System.out.println("This is an animal");
    }
}
class Cat extends Animal {}

public static void main(String[] args) {
    Animal.identify();
    Cat.identify(); // This compiles, even though it is not redefined in Cat.
}
Run Code Online (Sandbox Code Playgroud)

然而,

interface Animal {
    public static void identify() {
        System.out.println("This is an animal");
    }
}
class Cat implements Animal {}

public static void main(String[] args) {
    Animal.identify();
    Cat.identify(); // This does not compile, because interface …
Run Code Online (Sandbox Code Playgroud)

java inheritance static-methods interface java-8

47
推荐指数
3
解决办法
9633
查看次数

参考Kotlin中的Java接口静态字段

我可以从Kotlin引用Java接口字段吗?我有这个Java接口:

public interface BaseColumns {
    public static final String _ID = "_id";
    public static final String _COUNT = "_count";
}
Run Code Online (Sandbox Code Playgroud)

我在Kotlin中实现它:

object UserEntry : BaseColumns {
    // some code
}
Run Code Online (Sandbox Code Playgroud)

我尝试时得到Unresolved引用UserEntry._ID.我该如何访问_ID?我错过了什么吗?谢谢!

kotlin

11
推荐指数
1
解决办法
928
查看次数

标签 统计

inheritance ×1

interface ×1

java ×1

java-8 ×1

kotlin ×1

static-methods ×1