接口的定义与类类似,接口也可继承父接口,接口中的方法只有定义而没有被实现。在类中实现接口时,方法的名字、返回值类型、参数个数及类型必须与接口中的完全一致,并且该类必须实现接口中的所有方法。
在类的继承中只能实现单重继承,而实现接口时则可以一次实现多个接口,每个接口间使用逗号“,”隔开。这时就可能出现常量或方法名冲突的情况,解决该问题时,如果常量冲突,则需要明确指定常量的接口,这可以通过“接口名.常量”实现。如果出现方法冲突,只要实现一个方法就可以了。
本实例主要实现定义两个接口,并且在这两个接口中声明了一个同名的常量和一个同名的方法,然后再定义一个同时实现这两个接口的类。具体步骤如下:
(1)创建一个名称为Calculate的接口,在该接口中声明一个常量和两个方法,具体代码如下:
(2)创建一个名称为GeometryShape的接口,在该接口中声明一个常量和3个方法,具体代码如下:
(3)创建一个名称为Circ的类,该类实现以上定义的两个接口,具体代码如下:
(4)运行本实例的结果如下:
[size=medium][color=blue]圆的面积为:153.93791
圆的周长为:43.98226
画一个圆形!
[/color][/size]
在类的继承中只能实现单重继承,而实现接口时则可以一次实现多个接口,每个接口间使用逗号“,”隔开。这时就可能出现常量或方法名冲突的情况,解决该问题时,如果常量冲突,则需要明确指定常量的接口,这可以通过“接口名.常量”实现。如果出现方法冲突,只要实现一个方法就可以了。
本实例主要实现定义两个接口,并且在这两个接口中声明了一个同名的常量和一个同名的方法,然后再定义一个同时实现这两个接口的类。具体步骤如下:
(1)创建一个名称为Calculate的接口,在该接口中声明一个常量和两个方法,具体代码如下:
public interface Calculate{
final float PI = 3.14159f;//定义一个用于表示圆周率的常量PI
float getArea(float r);//定义一个用于计算面积的方法getArea()
float getCircumference(float r);//定义一个用于计算周长的方法getCircumference()
}
(2)创建一个名称为GeometryShape的接口,在该接口中声明一个常量和3个方法,具体代码如下:
public interface GeometryShape{
final float PI = 3.14159f;//定义一个用于表示圆周率的常量PI
float getArea(float r);//定义一个用于计算面积的方法getArea()
float getCircumference(float r);//定义一个用于计算周长的方法getCircumference()
void draw();//定义一个绘图的方法
}
(3)创建一个名称为Circ的类,该类实现以上定义的两个接口,具体代码如下:
public class Circ implements Calculate,GeometryShape{
public float getArea(float r){
float area = Calculate.PI*r*r;
return area;
}
public float getCircumference(float r){
float circumference = 2*Calculate.PI*r;
return circumference;
}
public void draw(){
System.out.println("画一个圆形!");
}
public static void main(String args[]){
Circ circ = new Circ();
float r = 7;
float area = circ.getArea(r);
System.out.println("圆的面积为:"+area);
float circumference = circ.getCircumference(r);
System.out.println("圆的周长为:"+circumference);
circ.draw();
}
}
(4)运行本实例的结果如下:
[size=medium][color=blue]圆的面积为:153.93791
圆的周长为:43.98226
画一个圆形!
[/color][/size]