你必须实现你的所有方法interface
,除非实现的类interface
是abstract
。
如果通过限制您的意思是您想要预定义一个或多个方法,那么您可以使用 anabstract class
而不是interface
. an 中的抽象方法abstract class
是必须由任何扩展abstract class
. 非抽象方法实际上是在abstract class
, 本身中实现的。
例如,
public abstract class MyClass
{
abstract void methodOne();
void methodTwo()
{
//implementation code
}
}
public class MyOtherClass extends MyClass
{
void methodOne()
{
//implementation code
}
}
这是Abstract Classes and Methods的参考。
编辑1(回应评论):
我不太确定你所说的负担是什么意思。我要说的是,如果您希望所有方法都由该类实现,那么请使用接口。
如果你只想要一个类实现的一些方法,那么你可以使用抽象类而不是接口
或者
如果有意义的话,让一个抽象类(部分地)实现接口,然后让其余的方法由抽象类的扩展来实现。
两种方法都是合理的。这取决于你真正需要做什么。
编辑 2(针对附加评论):
为一个用户类提供附加功能似乎是一个完美的应用程序,只需使用具有附加功能的“超级用户”类扩展“普通用户类”。如果您需要“超级用户”类的接口,您可以创建一个扩展“普通用户”类实现的接口的接口。