Java中的接口
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的接口相关的知识,希望对你有一定的参考价值。
一.接口的定义
Java中的接口是纯抽象类,可以规定方法的原型,即方法名、参数列表和返回类型,但是不需要定义方法的主体。
Java中的接口是可以实现多继承的,其基本语法形式为:
[接口修饰符] interface 接口名称 [extends 父接口名]{ //方法的原型声明或静态变量 }
其中:
1.接口中的数据成员必须要有初值且不能再更改,即定义为final类型,但可以省略final关键字。
2.接口中的方法 必须是抽象方法,不允许包含方发的实现,可以省略public和abstract关键字。
二.实现单接口
接口的实现需要使用implements关键字,其基本语法如下:
public class 类名称 implements 接口名称 { //在类体中实现接口的方法 }
其中:接口的实现类必须实现接口中所定义的所有方法,且来自接口的方法必须声明为public。
//声明一个接口Shape2D,包括PI和计算面积的方法原型 interface Shape2D{ final double pi = 3.14; public abstract double area();//也可写作double area(); } class Circle implements Shape2D{ double radius; public Circle(double r){ radius = r; } public double area(){ return (pi*radius*radius); } } class Rectangle implements Shape2D{ int width,height; public Rectangle(int w,int h){ width = w; height = h; } public double area(){ return(width*height); } } public class InterfaceTester{ public static void main(String[] args){ Rectangle rect = new Rectangle(5,6); System.out.println("Area of rect = " + rect.area()); Circle cir = new Circle(2.0); System.out.println("Area of cir = " + cir.area()); Shape2D var1,var2;//声明接口类型的变量,并用它来访问对象 var1 = new Rectangle(5,6); System.out.println("Area of var1 = " + var1.area()); var2 = new Circle(2.0); System.out.println("Area of var2 = " + var2.area()); } } //运行结果 Area of rect = 30.0 Area of cir = 12.56 Area of var1 = 30.0 Area of var2 = 12.56
三.实现多接口的继承
一个类可以实现多个接口,通过这种机制可以实现对设计的多重继承。其基本语法为:
[类修饰符] class 类名称 implements 接口1,接口2,...{ //实现接口方法 }
例
interface Color{ void setColor(String str); } class Circle implements Shape2D,Color{ double radius; String color; public Circle(double r){ radius = r; } public double area(){ return (pi*radius*radius); } public void setColor(String str){ color = str; System.out.println("color=" + color); } } public class MultiInterfaceTester{ public static void main(String[] args){ Circle cir; cir = new Circle(2.0); cir.setColor("blue"); System.out.println("Area=" + cir.area()); } } //输出结果 color=blue Area=12.56
四.接口的扩展
若一个接口继承了父接口,在类中实现接口方法时需要同时实现父接口中定义的方法。接口的继承是多继承,其基本语法为:
interface 子接口的名称 extends 超接口的名称1,超接口的名称2...{ //定义方法名称及静态变量 }
interface Shape{ double pi = 3.14; void setColor(String str); } interface Shape2D extends Shape{ double area(); } class Circle implements Shape2D{ double radius; String color; public Circle(double r){ radius = r; } public double area(){ return (pi*radius*radius); } public void setColor(String str){ color = str; System.out.println("color=" + color); } } public class ExtendsInterfaceTester{ public static void main(String[] args){ Circle cir; cir = new Circle(2.0); cir.setColor("blue"); System.out.println("Area=" + cir.area()); } }
以上是关于Java中的接口的主要内容,如果未能解决你的问题,请参考以下文章