接口可以用来定义行为的契约,同时也可以作为两个系统之间交互的契约,而抽象类主要用于为子类定义默认行为,这意味着所有子类都应该执行相同的功能。
abstract class Car { public void accelerate() { System.out.println("Do something to accelerate"); } public void applyBrakes() { System.out.println("Do something to apply brakes"); } public abstract void changeGears(); }
现在,任何想要实例化的汽车都必须实现changeGears()方法。
class Alto extends Car { public void changeGears() { System.out.println("Implement changeGears() method for Alto Car"); } } class Santro extends Car { public void changeGears() { System.out.println("Implement changeGears() method for Santro Car"); } }
public interface Actor { void perform(); } public interface Producer { void invest(); }
如今,大多数演员都富裕到可以自己制作电影。如果我们使用接口而不是抽象类,我们可以同时实现Actor和Producer。此外,我们还可以定义一个新的ActorProducer接口,它继承了两者。
public interface ActorProducer extends Actor, Producer{ // some statements }
以上是在Java中何时使用抽象类,何时使用接口?的详细内容。更多信息请关注PHP中文网其他相关文章!