我在接口(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)。


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!