它在锡上说的是什么。如果之前有人问过,道歉和链接会受到赞赏,只是在挖掘之后我找不到任何东西。
鉴于接口不允许像static这样的关键字,以及"抽象静态"在Java中还没有(但是)(参见这里的讨论,Why can't static methods be abstract in Java),我有什么方法可以说" Foo的每个后代都有一个有保证的静态方法Bar" ?
答案 0 :(得分:3)
Foo的每个后代都有一个保证静态方法Bar
不是真的,如果使用default
方法,您只能覆盖default
方法(如果在儿童中使用),而不是每个孩子都会在interface
中进行常规实施。此外,default
方法 不 static
。
另一方面,static
中允许使用Java-8
方法,但您可以使用接口名称直接访问它,但这并不意味着只有接口的子项具有该接口名称static
方法。但是,对于可以导入或到达界面的每个类,都可以访问此static
方法。
答案 1 :(得分:1)
大多数OO语言都接受正常的非静态虚拟mehotd。一些,也许是利基,即像Delphi一样有虚拟静态方法。
在派生对象中可以调用静态方法,并且足够用于对象类。许多人没有这个概念。
答案 2 :(得分:1)
您的问题在java语言中不是问题。你无法规定'子类有静态方法x()和,即使你可以,也没有语言元素允许你实际调用子类静态方法(除非通过限定它与儿童阶级文字,这违背了目的)。
这看起来像一个XY问题。更好地询问您打算解决的问题。