1.接口是一种只包含全局静态常量,全局抽象方法,的特殊抽象类。
接口规范:
a.接口命名规则与类相同,修饰符是public 则整个项目可见,默认权限则包内可见。不可用private,protected.
b.接口可定义常量,不可定义变量,接口中的属性会自动用public static final修饰,接口中的常量在定义时,必须
指定初始值
public static final int PI=3.14;
int PI=3.14;
这两句在接口中,是一样的,即定义常量时,public static final可以省略。
c.接口中的方法也会自动用public abstract修饰,即定义方法时,public abstract可以省略。
public abstract int add();
int add();
d.接口中不能有构造方法;
e.接口之间可以用extends继承,一个接口可以继承多个接口,但接口不能继承类。
f.接口的实现类必须实现接口的全部方法,否则必须定义为抽象类。
2.接口的作用:
a.接口代表一种能力,
b.接口代表一种约束
3.定义接口的语法:
[修饰符]interface 接口名 extends 父接口1,父接口2,.........
{
//常量定义
//方法定义
}
class 类名 extends 父类名 implements 接口1,接口2,.........
{
//类成员
}
extends 要放在implements前面
4.接口代表一种约束:
public interface InkBox
{
//磨盒颜色
String getColor();
}
public interface Paper
{
//纸张大小
String getSize();
}
public class Printer
{
InkBox inkBox;
Paper paper;
//设置墨盒
public void setInkBox(InkBox inkBox)
{
this.inkbox=inkBox;
}
//设置打印机纸张
public void setPaper (Paper paper){
this.paper=paper;
}
//使用墨盒在纸张上打印
public void print()
{
System.out.println("··");
}
}
//彩色墨盒
public class ColorInkBox implements InkBox
{
public String getColor()
{
return"彩色";
}
}
//黑白墨盒
public class GrayInkBox implements InkBox
{
public String getColor()
{
return"黑白";
}
}
//A4纸张
public class A4Paper implements Paper
{
public String getSize()
{
return"A4";
}
}
//B5纸张
public class B5Paper implements Paper
{
public String getSize()
{
return "B5";
}
}
public class Test
{
public Static void main(String[]args)
{
//1.定义打印机
InkBox inkBox=null;
Paper paper=null;
Printer printer=new Printer();
//2.使用黑白墨盒在A4纸上打印
inkBox=new GrayInkBox();
paper=new A4Paper();
printer.setInkBox(inkBox);
printer.setPaper(paper);
printer.print();
//3.使用彩色墨盒在B5纸上打印
inkBox=new ColorInkBox();
paper=new B5Paper();
printer.setInkBox(inkBox);
printer.setPaper(paper);
printer.print();
}
}