Interface(接口)

接口:用interface定义接口

接口定义格式特点:

 1、接口中常见定义:常量,抽象方法。

 2、接口中的成员都有固定的修饰符。

      常量:public  static final

      方法:public abstract

 记住:接口中的成员都是public的,固定修饰符可以省略。

 

接口是不可以创建对象的,因为有抽象方法。

需要被子类实现,子类对接口中的抽象方法全部覆盖后,子类类可以实例化。

否则子类是一个抽象类。

 

接口的特点:

1、接口是对外暴露的规则。

2、接口是程序的功能扩展。

3、接口可以用来多实现,降低了模块的耦合性。

4、类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。

5、接口与接口之间可以有继承关系,也可以多继承。

 

首先创建接口:

interface JieKou{

         public static final  String COUNTRY  =  "CN";

         public abstract void show();

         void test();

}

 

interface JieKouOne {

          int AGE = 21;

          void test();

 }

如上面所示,接口是用interface来定义;

声明的常量参数要大写;

并且接口中可以省略修饰词,常量参数可以省略public static final

方法可以省略public abstract,所以test方法也是抽象方法;

 

接口的实现:

关键字:implements;类似继承的写法,

接口的实现类中必须要复写所有的抽象方法,才可以创建对象。

 

class InterFaces  implements JieKou,JieKouOne{

          public void show(){

                   System.out.println("……show啊");

          };

          public void test(){

                   System.out.println("……测试");

          };

 }

 从上面所示,实现接口要重新创建一个类,进而用关键字implements进行实现;

且接口中的抽象类都必须进行重写,不然报错;

 

接口可以多继承,因为接口中方法没有主体;

        但继承的接口中不能存在方法名相同,返回类型不同的方法。

类可以继承类再实现接口;

 

interface JieKouTwo extends JieKou,JieKouOne{

           public  abstract  void  eat();

  }

 

  class  InterFacess extends  InterFaces implements JieKouOne{

                   public void test(){

                          System.out.println("测试……芝麻开门。收到,over!");

                   }

  }

如上面所示:

接口可以继承接口,并且可以就行多继承;

之所以接口中的方法没有主体,因为接口中的方法都是抽象方法,抽象方法是没有主体的,需要继承该接口去重写这个抽象方法。

接口继承接口的同时还可以实现接口;

 

下面来演示接口的用法:

在主方法中进行调用;

public static void main(String[] args) {

                  JieKou inter = new InterFaces();

//接口创建对象要实例它的实现类。

  //打印常量

//由于常量是static所修饰,可以直接被该类调用,也可以被该实现类调用,最次也可以被该接口创建的实例对象调用,//只不过没必要,多此一举,最佳就是前两者;

         

           System.out.println(JieKou.COUNTRY);

           System.out.println(InterFaces.COUNTRY);

System.out.println(inter.COUNTRY);

     

      }

 

运行结果:

 

//调用方法

//方法的调用就需要用接口所实例出来的对象就行调用了

inter.show();

InterFacess inters = new InterFacess();

inters.test();

 

 

 运行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值