我在接口(interface)中有两个方法:
public interface MyInterface {
public void methodOne();
public void methodTwo();
}
public class MyClass implements MyInterface{
public void methodOne(){
//implementation code
}
public void methodTwo(){
//implementation code
}
}
我可以在实现接口(interface)时限制其中之一吗?
请您参考如下方法:
您必须实现接口(interface)
的所有方法,除非实现接口(interface)
的类是抽象
。
如果您所说的限制是指您想要预定义一个或多个方法,那么您可以使用抽象类
而不是接口(interface)
。 抽象类
中的抽象方法是必须由任何扩展抽象类
的类实现的方法。非抽象方法实际上是在抽象类
本身中实现的。
例如,
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(回应评论):
我不太清楚你所说的负担是什么意思。我想说的是,如果您希望所有方法都由类实现,那么请使用接口(interface)。
如果您只想通过类实现某些方法,那么您可以使用抽象类代替接口(interface)
或
如果有意义,请让一个抽象类(部分)实现该接口(interface),然后通过扩展该抽象类的任何内容来实现其余方法。
这两种做法都是合理的。这取决于您真正需要做什么。
编辑2(回应其他评论):
为一个用户类提供附加功能似乎是一个完美的应用程序,只需使用具有附加功能的“ super 用户”类来扩展“普通用户类”即可。如果您需要“ super 用户”类的接口(interface),则可以创建一个扩展“普通用户”类实现的接口(interface)的接口(interface)。