如果一个类实现另一个班级…这是什么意思?我找到了此代码示例: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!";
}
}
这俩Cat
和Dog
类实施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()
分类我们的方法List
的Person
在这种情况下,以其自然排序对象以姓氏为单位。