我知道在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) 我可以从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?我错过了什么吗?谢谢!