现在自学Java中,结合网上搜索、书上描写及自己的理解,对接口有一些理解,希望与大家分享一下。
接口是不同类的相同方法的集合,不过它只给出了方法的定义,并没有给出具体的实现。
就像一群杀手,有人叫他去杀一个人,他们有相同的行为——杀死目标,这就像接口,不同的杀手会用不同的手段,这如方法的具体实现,当然作为雇佣者,他们不需要了解这些,只要知道结果就行,杀死目标。所以说接口利于管理,容易理解。
假如有两个杀手,一个喜欢刺杀,另一个喜欢毒杀,有如下程序:
public class Person {
private String name;
public Person()
{
name = "no name";
}
public Person(String thename )
{
name = thename;
}
public String getName()
{
return name;
}
}
public interface KillMethod { /*接口*/
public void kill(Person p);
}
public class Killer1 implements KillMethod {
private String name;
public Killer1(String thename )
{
name = thename;
}
public String getName()
{
return name;
}
public void kill(Person p)
{
System.out.println("刺杀" + p.getName());
}
}
public class Killer2 implements KillMethod {
private String name;
public Killer2(String thename )
{
name = thename;
}
public String getName()
{
return name;
}
public void kill(Person p)
{
System.out.println("毒杀" + p.getName());
}
}
public class TestAll {
public static void main(String[] args) {
// TODO Auto-generated method stub
Person victim = new Person("嬴政");
Killer1 killer1 = new Killer1("荆轲");
System.out.print(killer1.getName());
killer1.kill(victim);
Killer2 killer2 = new Killer2("高渐离");
System.out.print(killer2.getName());
killer2.kill(victim);
}
}
输出:荆轲刺杀嬴政
高渐离毒杀嬴政
当然如果杀手喜欢用现代化的方式,比如枪杀,或者扔原子弹,那就在多创几个杀手类,不过方法还是一样,接口不需要做任何改变。这样的好处是便于程序以后的升级。