Java之接口

来源:互联网 发布:广州网络远程教育 编辑:程序博客网 时间:2024/06/04 08:07
     接口定义的是多个类共同的公共行为规范,这些行为是外部交流的通道,这就意味着接口里通常是定义一组公用方法。定义接口不再使用class关键字,而是使用interface关键字。

【修饰符】 interface 接口名 extends 父接口1 , 父接口2...
{
     零个到多个常量定义....
     零个多多个抽象方法定义....
}
     语法说明:
     1、修饰符可以使public或省略,如果省略public默认采用包权限访问控制符,即只有在相同包结构下才可以访问该接口。
     2、接口命名规则与类命名规则相同。
     3、一个接口可以有多个直接父接口,但接口只能继承接口,不能继承类。

     接口的继承和类继承不一样,揭露完全支持多继承,即一个接口可以有多个直接父接口。
     接口不能用于创建实例,但接口可以用于声明引用类型的变量。接口的主要用途就是被实现类实现。

接口作为一种约定、规范或标准具有以下的显著特征:
  • 接口不可以被实例化,不能有构造方法;
  • 接口中的所有成员都是public static final;
  • 接口中的方法都是抽象方法,接口中的方法会自动使用public abstract修饰,不能有方法体;
  • 一个类可以同时实现多个接口;
  • 实现类必须实现接口中的所有方法;
  • 接口可以继承接口。
示例一:
     设计USB接口,可以实现PC的USB接口连接U盘和鼠标。
     分析:首先定义一个USB接口,然后分别设计一个U盘和鼠标类,接着创建一个PC的对象,最后创建Main方法。

/*------------------------------------------定义USB接口---------------------------------------*/
public interface USB
{
     int width=2;
     int height=3;
     public void swapdata();

/*-------------------------------创建U盘类,继承与USB---------------------------------------*/
public class UseDisk  implements USB
{
     public void swapdata()
     {
          System.out.println("U盘连接电脑!");
     }
}  
/*---------------------------创建鼠标类,继承与USB------------------------------------------*/
class  UseMouse  implements USB
{
     public void swapdata()
     {
          System.out.println("鼠标连接电脑!");
     }
}
/*--------------------------------创建PC对象-----------------------------------------*/
public class PC
{
     public void UseDevice(USB u)
          {
               u.swapdata();
          }
}
/*-------------------------------Main方法-----------------------------------------*/
public class  TestUsb
{
     public static void main(String[] args)
     {
          USB um=new UseMouse();
          USB ud=new UseDisk();

          PC pc =new PC();
          pc.UseDevice(ud);
          pc.UseDevice(um);
     }
}


输出结果:
U盘连接电脑!
鼠标连接电脑!

示例二:
     设计一个打印机,可以分别包含彩色墨盒和黑白墨盒;可以打印A4和B5。
     分析:设计两个接口,分别为InkBox(墨盒)和Parper(纸张)。设计两个类实现接口InkBox,分别为ColorInkBox和BlackInkBox。设计两个类实现Parper,分别为A4Parper和B5Parper。然后创建Printer对象实现打印任务。最后创建main方法。

/*-----------------------设计InkBox(墨盒)和Parper(纸张)接口--------------------------------*/
public interface InkBox
{
     public void ink();

public interface Parper
{
     public void page();
}
/*------------------------设计InkBox的两个类---------------------------------------*/
class ColorInkBox implements InkBox
{
     public void ink()
     {
          System.out.print("彩色打印机进行打印,");
     }
}
class BlackInkBox implements InkBox
{
     public void ink()
     {
          System.out.print("黑白打印机进行打印,");
     }
}
/*---------------------------设计Parper的两个类--------------------------------------*/
class A4Parper implements Parper
{
     public void page()
     {
          System.out.println("打印A4纸张");
     }
}
class B5Parper implements Parper
{
     public void page()
     {
          System.out.println("打印B5纸张");
     }
}
/*-------------------------创建Printer对象-------------------------------------------*/
public class Printer 
{
     public void Operational(InkBox ib, Parper p)
     {
          ib.ink();
          p. page();
     }
}
/*---------------------------创建Main方法-----------------------------------*/
public class  TestPrinter
{
     public static void main(String[] args)
     {
          InkBox ibc=new ColorInkBox();
          InkBox ibb=new BlackInkBox();
          Parper pb= new B5Parper();
          Parper pa= new A4Parper();

          Printer p=new Printer();
          p.Operational(ibb,pa);
          p.Operational(ibc,pb);
         
     }
}



输出结果:

     黑白打印机进行打印,打印A4纸张
     彩色打印机进行打印,打印B5纸张
0 0
原创粉丝点击