interface类似于class,只不过interface里的所有方法都是abstract抽象的,当一个非抽象的class实现(implements)一个接口interface时,必须实现接口中所有方法(因为都是abstract抽象的),否则该class必须声明为abstract.
public class Main {
/**
* @param args
* @throws UnsupportedEncodingException
*/
public static void main(String[] args) throws UnsupportedEncodingException {
// TODO Auto-generated method stub
new Athlete().jump();
new Athlete().run();
}
}
interface Sport{
void run();//默认public abstract
void jump();
}
class Athlete implements Sport{//实现接口
@Override
public void jump() {
// TODO Auto-generated method stub
System.out.println("jump");
}
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("run");
}
}
不同类通过接口实现通讯:
public class Main {
public static void main(String[] args) throws UnsupportedEncodingException {
Zhang z=new Zhang();
Info info=new Info();
info.setPeople(z);
System.out.println(info.getName()+" is "+info.getDoing());
}
}
interface People{//定义接口
String name();
String doing();//默认public abstract
}
class Zhang implements People{//实现接口
@Override
public String name() {
// TODO Auto-generated method stub
return "zhangshang";
}
@Override
public String doing() {
// TODO Auto-generated method stub
return "sleeping";
}
}
class Info {
People p;
void setPeople(People p){
this.p=p;
}
String getName(){
return p.name();
}
String getDoing(){
return p.doing();
}
}
1、一个接口可以继承(extends)自另一个接口 2、不允许类的多继承,但允许接口的多继承(同时继承多个接口) 2、类可以实现多个接口 3、类在继承另一个类的同时,可以实现多个接口,先extends后implements