Java:如何调用在接口中实现另一个方法的方法?
假设我有这个方法,它是目录接口的一部分Java:如何调用在接口中实现另一个方法的方法?,java,methods,interface,Java,Methods,Interface,假设我有这个方法,它是目录接口的一部分 public interface Directory { public void insertEntry(Entry entry, String surname); public class ArrayDirectory implements Directory { public void insertEntry(Entry entry, String surname) { System.out.printl
public interface Directory {
public void insertEntry(Entry entry, String surname);
public class ArrayDirectory implements Directory
{
public void insertEntry(Entry entry, String surname)
{
System.out.println( "Doing insertEntry work." ) ;
…
}
}
然后我创建了一个名为arrayDirectory
的单独类,它在目录中实现了相同的方法。
然后如何在arrayDirectory
类中调用此方法?因为我试图在main中调用它,但是为了做到这一点,该方法必须是静态的,它不能是静态的,因为这样它就不会从接口实现该方法,并且我不允许更改接口中方法的方法签名。请帮帮我,我不知道该怎么办。实现
将类定义为实现该接口。使用关键字实现
此外,在Java约定中,类名以大写字母开头。因此,请将类命名为ArrayDirectory
,而不是ArrayDirectory
public void insertEntry(Entry entry, String surname) {
}
多态性
现在通过new
通过对象使用该类。如果只调用接口上定义的方法,请将该对象称为类而不是具体类
public interface Directory {
public void insertEntry(Entry entry, String surname);
public class ArrayDirectory implements Directory
{
public void insertEntry(Entry entry, String surname)
{
System.out.println( "Doing insertEntry work." ) ;
…
}
}
这种技术被称为(“许多形状”)。狗
对象可能被称为更通用的动物
。圆形
对象和矩形
都可以称为形状
。InternationalShippingLabel
和DomesticShippingLabel
都可以称为ShippingLabel
。PreferredCustomer
和StandardCustomer
类都可以实现Customer
接口
动态调度
然后调用该对象上的方法
Directory directory = new ArrayDirectory() ;
通过的魔力,JVM在运行时在ArrayDirectory
类上找到要执行的必要代码
顺便说一下,注意这里的命名约定。类名以大写字母开头,而对象(实际上是引用变量)以小写字母开头。而且,仅供参考,Java命名使用了全部Unicode字符(法语、日语等),而不仅仅是英语ASCII字符
抽象类
如果不同的类有一些重复的代码,那么将它们的共享接口改为抽象类。然后可以将重复的代码移动到抽象类中。这样,当您以后进行审阅或维护工作时,您只有地方查找、研究和修复该代码。您需要创建该类的实例,并对该实例调用您的方法;并调用类似于d.insertEntry()的方法;