java interface 接口的使用

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

© 2011, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记