如果一个类实现另一个班级…这是什么意思?我找到了此代码示例:http://www.java2s.com/Code/Php/Class/extendsandimplement.htm

但不幸的是,它没有任何解释…

答案

工具意味着它采用指定的行为接口指定。考虑以下接口:

public interface ISpeak
{
   public String talk();
}

public class Dog implements ISpeak
{
   public String talk()
   {
        return "bark!";
   }
}

public class Cat implements ISpeak
{
    public String talk()
    {
        return "meow!";
    }
}

这俩CatDog类实施ISpeak界面。

接口的伟大是,我们现在可以通过ISpeak界面。考虑以下示例:

  Dog dog = new Dog();
  Cat cat = new Cat();

  List<ISpeak> animalsThatTalk = new ArrayList<ISpeak>();

  animalsThatTalk.add(dog);
  animalsThatTalk.add(cat);

  for (ISpeak ispeak : animalsThatTalk)
  {
      System.out.println(ispeak.talk());
  }

该循环的输出将是:

吠!
喵!

界面提供了一种基于他们的事物的通用方式与类互动的方法不揭示实施类是什么。

例如,Java中最常见的接口之一是Comparable。如果您的对象实现此接口,则可以编写一个实现,消费者可以用来对对象进行分类。

例如:

public class Person implements Comparable<Person>
{
  private String firstName;
  private String lastName;

  // Getters/Setters

  public int compareTo(Person p)
  {
    return this.lastName.compareTo(p.getLastName());  
  }
}

现在考虑此代码:

//  Some code in other class

List<Person> people = getPeopleList();

Collections.sort(people);

这段代码的作用是为Person班级。因为我们实施了Comparable接口,我们能够利用Collections.sort()分类我们的方法ListPerson在这种情况下,以其自然排序对象以姓氏为单位。

来自: stackoverflow.com