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();
}
}