博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于接口
阅读量:6738 次
发布时间:2019-06-25

本文共 1533 字,大约阅读时间需要 5 分钟。

1、接口的定义

如果一个抽象类中的所有方法都是抽象的,就可以将这个类用另外一种方式来定义,也就是接口定义。

接口是抽象方法和常量值的定义的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现
可以使用extends来继承接口的常量和抽象方法,但它与类中的extends不同,它可以继承有多个父接口(多重继承),各父接口间用逗号隔开。
接口中的所有常量必须是public static final,方法必须是public abstract,这是系统默认的,不管你在定义接口时,写不写修饰符都是一样的。

2、接口的特点

定义接口的关键字:interface。实现接口的关键字:implements。

    1)不能够被实例化
    2)接口中的方法自动设为public abstract类型
    3)接口中不能够出现方法体的实现
    4)接口中的成员变量全为静态常量,用public static final,不过一般不在接口中定义成员变量
    5)实现某个接口的类,必须实现其中所有的方法
    6)一个类可以实现多个接口
    7)接口可以继承接口,使用extends关键字

    8)一个类可以继承一个父类的同时,实现一个或者多个接口,extends关键字必须位于implements关键字之前

3、接口的作用

接口的最主要的作用是达到统一访问。在不同事物(类)中抽象出共同功能点(方法),形成一组公开的功能规则(接口)

来制约某些事物(类)的功能实现。换句话说:接口就是对类的功能(方法)抽象。

接口程序段实例:

interface PCI

{
   void start();
   void stop();
}

class NetWorkCard implements PCI

{
 public void start()
 {
  System.out.println("send");
 }
 public void stop()
 {
  System.out.println("stop");
 }
}

class SoundCard implements PCI

{
 public void start()
 {
  System.out.println("du..du");
 }
 public void stop()
 {
  System.out.println("sound stop");
 }
}

class MainBoard

{
 public void usePCICard(PCI p)
 {
  p.start();
  p.stop();
 }
}

class Assembler
{
 public static void main(String args[])
 {
  MainBoard mb = new MainBoard();
  NetWorkCard nc = new NetWorkCard();
  SoundCard sc = new SoundCard();
  mb.usePCICard(nc);
  mb.usePCICard(sc);
 mb.usePCICard(new PCI()
  {
   public void start()
   {
    System.out.println("I love you");
   }
   public void stop()
   {
    System.out.println("Me too");
   }
  });
 }
}

PS:关于上面的mb.usePCICard(new PCI()。。。这个方法,是采用匿名类来实现接口

 

转载于:https://www.cnblogs.com/rpp506815950/archive/2012/10/31/2747457.html

你可能感兴趣的文章
数据结构(06)_栈
查看>>
openstack
查看>>
聊聊flink JobManager的High Availability
查看>>
聊聊Elasticsearch的SingleObjectCache
查看>>
运维CMDB系统
查看>>
面向对象基本概念
查看>>
计算机网络(一)——互联网层
查看>>
hive关联查询连接hbase的外部表时,内存溢出问题
查看>>
顺序结构的程序设计-考点
查看>>
Web前端面试指导(十四):如何居中一个元素(正常、绝对定位、浮动元素)?
查看>>
php基础
查看>>
磁盘提示使用驱动器中的光盘之前需要格式化资料怎样找回
查看>>
C++后台开发岗)
查看>>
关于php的CURL的使用
查看>>
springboot2.0系列(三):热部署devtools
查看>>
Oracle-day01 下
查看>>
NAT网络地址转换(一)
查看>>
支付宝6轮面试经验
查看>>
eyoucms怎么我的后台里面只有文章,单页,留言的模型?
查看>>
FLV格式文件如何转换成MP4格式
查看>>