public interface JuiceMachine void makeJuiceFruit fruit;public class Apple implements Fruit Override public String toString return Apple; public class Orange implements Fruit
在Java中,接口只能定义方法的签名,而不能实现方法的具体逻辑。因此,当定义了一个接口JuiceMachine时,其中的方法makeJuice只有方法签名,没有具体的实现逻辑。
在实现类JuiceMachineImpl中,我们通过判断传入的Fruit对象的具体类型来实现不同的逻辑。这是因为Java中的多态特性,一个类的实例可以赋值给其父类或实现的接口类型,所以我们可以将Apple、Orange和Banana对象赋值给Fruit类型的引用,并传递给makeJuice方法。
在Main类的main方法中,我们创建了JuiceMachineImpl的实例juiceMachine,以及Apple、Orange和Banana的实例。然后我们通过juiceMachine调用了makeJuice方法,并传入了不同的水果对象,从而实现了不同水果对应的具体逻辑。
所以,Fruit是可以调用的,只是它无法直接实例化,只能通过它的实现类来创建对象。
原文地址: https://www.cveoy.top/t/topic/ibPK 著作权归作者所有。请勿转载和采集!