java中的接口

一、接口

就是一组规范,标准。

接口是一组对类功能需求的统一描述。

这些类要遵守接口中规定的功能需求。

接口可以看作是特殊的抽象类。

二、 接口如何定义:

 public  interface  接口名[与类名命名规则相同]
 {
    //public static final 修饰的常量----常量
    //public abstract修饰的方法--------抽象方法
 }

三、接口使用(常量和抽象方法)

• 接口无法创建实例。使用接口和使用抽象类一样。由子类实现(用implements关键字)接口,声明接口,指向创建的子类对象。

public class A  implements  IA
{
  //重写接口所有的方法
  //如果子类中没有全部实现接口中的方法,则该类必须声明为abstract类
  //接口中的方法可以不带public,但子类中重写的方法必须有public
}
//Test类中调用
IA   a  =  new A(); 

• 在实际编程中,面向接口编程比较常见

四、接口的特性:

1、接口使用关键字interface定义;接口不是类,但在用法及命名上,和类相似。

2、接口中,所有的方法都是public abstract修饰的抽象方法;所有的属性都是public static final修饰的静态常量。所以,在接口中,定义常量和方法时,相同的修饰符可省略。

3、 类通过implements实现接口。一个类要么全部实现接口中所有的抽象方法;要么该类是抽象类。在重写接口中的方法时,public不可省略。

4、接口不可以用new来实例化,但可以声明一个接口,引用其实现类对象。

5、一个类只能继承一个类,但可以实现多个接口,多个接口以,分隔。
public class A  extends B  implements IA, IB, IC….{}。也就是说Java中可以通过接口间接的实现多继承。

6、类与类之间是单继承,使用关键字extends;接口与接口之间,也是继承,使用extends,且接口与接口可以直接实现多继承;类与接口之间,是实现,使用implements,一个类可以实现多个接口.


可以通过代码来检验一下

<pre name="code" class="java">package com.jcxy.demo06;
/**
 * 
 * 接口的定义用interface关键字
 * 接口与接口之间可以实现多继承
 * @author  Mr Wang
 * @version  [V1.00, 2015-12-7]
 * @see  [相关类/方法]
 * @since V1.00
 */
public interface IA extends IB,IC
{
    //所有的属性都是public static final修饰的静态常量
    //以下写法都正确,如果没有写全是因为eclipse会自动补全
    public static final int age = 10;
    public static int sno = 5;
    public final int a = 1;
    static int b = 2;
    final int c = 3;
    int d = 4;
    
    //此种写法错误,只能public修饰
//    private int e = 6;
//    protected int f = 7;
    
    //方法的定义只能为public abstract修饰
    public abstract void show();    
    public abstract int show1(int i);
    //默认为public abstract修饰
    void draw();
    
}




一个类可以实现多个接口

package com.jcxy.demo06;
/**
 * 
 * 一个类只能继承一个类,但可以实现多个接口,多个接口以,分隔。
 *   public class A  extends B  implements IA, IB, IC….{}
 *  必须要继承在前,实现在后,否则报错
 * @author  Mr Wang
 * @version  [V1.00, 2015-12-7]
 * @see  [相关类/方法]
 * @since V1.00
 */
public abstract class A extends FA implements IA,IB,IC 
{
    //一个类实现接口中的部分方法时,该类必须用abstract修饰
    public abstract void show();
    
    public int show1(int i)
    {
        // TODO Auto-generated method stub
        return 0;
    }
    
    //重写的方法中,public关键字不能省略,否则报错
    public void draw()
    {
        // TODO Auto-generated method stub
        
    }  
}

注意:

接口不是类,但在用法上和类相似。

1、一个.java文件中,只能有一个public修饰的接口或类。且文件名与接口名或类名相同

2、类与类只有继承且只能继承一个类。类与接口实现,类可以实现多个接口。接口与接口可以继承,可以继承多个接口。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值