Java接口调用

public class Circle implements CalInterface {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Circle  c = new Circle(7);
		float area = c.getArea();
		float circle = c.getCircle();
		System.out.println("the area:" + Float.toString(area) + " and the circle:" + Float.toString(circle));
	}
	
	public Circle(){}
	
	public Circle(float r)
	{
		this.r = r;
	}
		
	public float getArea()
	{
		return PI * r * r;
	}
	
	public float getCircle()
	{
		return 2 * PI * this.r;
	}

	private float r;
}

其中,接口定义如下:

public interface CalInterface {
	static final float PI = 3.1415926f;
	float getArea();
	float getCircle();
}

接口可以看成是没有实例域的抽象类,是为了实现Java多重继承的功能。

接口可以将做什么和怎么做分离开,接口定义要做什么,通过implements Interface的类实现接口的function。

也就是这个类具有这个接口的方法,我们可以通过实例化这个类的对象,调用其所具有的接口的方法和自身的方法。

如:

显卡接口具有display的方法;

华硕公司所定义的生产显卡的类一定要implements这个显卡接口;

Intel公司所定义的生产显卡的类也会implements这个显卡接口;

我们的电脑主板可以插华硕的显卡,也可以插Intel的显卡;

因此,电脑主板中的程序可以调用不同显卡的display方法,因为这些显卡都具有display的功能。

如下例子:

1、接口文件:

public interface DisplayCard {
	public void display();
}

2、华硕显卡类:

public class HuashuoDisplayCard implements DisplayCard {
	public void display()
	{
		System.out.println("Huashuo Display");
	}
}

3、Intel显卡类:

public class IntelDisplayCard implements DisplayCard{
	public void display()
	{
		System.out.println("Intel Display");
	}
}

4、Test类:

public class DisplayCardTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		DisplayCard dc;
		HuashuoDisplayCard hdc = new HuashuoDisplayCard();
		dc = hdc;
		dc.display();
		IntelDisplayCard idc = new IntelDisplayCard();
		dc = idc;
		dc.display();
	}

}


你可能感兴趣的:(Java)