接口的继承:

接口的继承和类继承完全不一样,接口完全支持多继承,即一个接口可以有多个直接父接口,和类继承相似,子接口扩展某个父接口,将会获得父接口里定义的所有抽象方法、常量。

一个接口继承多个父接口时,多个父接口排在extends关键字之后,多个父接口之间以英文逗号隔开。

————————————————————————————————————————————————————————
示例程序:

interface interfaceA
{
    int PROP_A=5;
    void testA();

}

interface interfaceB
{
    int PROP_B=6;
    void testB();
}

interface interfaceC extends interfaceA,interfaceB
{
    int PROP_C=7;
    void testC();
}


public class InterfaceExtendsTest

{
    public static void main(String[] args)
    {
        System.out.println(interfaceC.PROP_A);
        System.out.println(interfaceC.PROP_B);
        System.out.println(interfaceC.PROP_C);
    }
}

```接口的作用:
(1)定义变量,也可以进行强制类型转换。
(2)调用接口中定义的变量
(3)被其他类实现

——————————————————————————
一个类可以实现一个或多个接口,实现接口使用implement关键字。语法格式如下:
[修饰符]  class   类名  extends   父类   implements  接口1,接口2
{
类体部分
} 

——————————————————————————————————————————————————
(1)一个类实现一个或多个接口之后,这个类必须完全实现这些接口里所定义的抽象方法(也就是全部重写这些抽象方法)
(2)一个类实现某个接口时,该类将会获得接口中定义的常量(成员变量)、方法等。
————————————————————————————————————————————————————
程序示例:实现一个接口类:





<div class="se-preview-section-delimiter"></div>

这里写代码片
“`

//定义一个Product接口
interface Product
{
    int getProduceTime(); 
}

//让Printer 类实现Output和Product接口
public class Printer implements Output,Product
{
   private  String[]  printData = new String[MAX_CACHE_LINE];
   //用以记录当前需要打印的作业数
      private int dataNum=0;
      public void out()
      {
      //只要还有作业,就继续打印
      while(dataNum>0)
      {
      System.out.println("打印机打印:"+printData[0]);
      //把作业队列整体前移一位,并将剩下的作业数-1
      System.arraycopy(printData,1,printData,0,--dataNum);
      }
      }

    public void getData(String msg)
    {
    if(dataNum >= MAX_CACHE_LINE)
         {
         System.out.println("输出队列已满,添加失败");
         }
         else
          {
          printData[dataNum++] =msg;
          }
    }
    public int getProduceTime()
      {
      return 45;
      }

      public static  void main(String[] args)
      {
      //创建一个Printer对象,当成Output来用
      Output  o = new Printer();
      o.getData("林肯公园");
      o.getData("后街男孩");
      o.out();
      o.getData("摇滚乐");
      o.getData("新金属");
      o.out();

      //调用Output中定义的默认方法
      o.print("麦克","新田","詹姆斯");
      o.test();
      //创建一个Printer对象,当成Product使用
      Product  p =new  Printer();
      System.out.println(p.getProduceTime());
      //所有接口类型的引用变量都可以直接赋值给Object类型的变量
      Object  obj = p;


      }

}

接口和抽象类:
(1)接口和抽象类都不能被实例化,都位于继承树的顶端,用于被其他类实现和继承。
(2)接口和抽象类都可以包含抽象方法,实现接口或者继承抽象类都必须实现这些方法。
(3)接口体现的是一种规范,抽象类体现的是一种模板式设计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值