接口

1、概念

  接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部数据,也不关心这些类里方法的实现细节,它只规定这些类里必须提供某些方法

2、接口定义

  [修饰符] interface 接口名 [extends 父接口1,父接口2...]

  {

    零到多个常量定义...

    零到多个抽象方法定义...

  }

  注:

  a. 接口就是用来被继承、被实现的,修饰符一般建议用public,不能使用private和protected修饰接口

  b. 接口默认添加abstract修饰符

  c. 接口中的属性是常量,即使定义时不添加public static final 修饰符,系统也会自动加上

  d. 接口中的方法只能是抽象方法,即使定义时不添加public abstract 修饰符,系统也会自动加上

3、使用接口

  一个类可以实现一个或多个接口,实现接口使用implements关键字。Java中一个类只能继承一个父类,是不够灵活的,通过实现多个接口可以做补充。

4、继承父类实现接口的语法

  [修饰符] class 类名 extends 父类 implements 接口1, 接口2...

  {

    类体部分//如果继承了抽象类,需要实现继承的抽象方法; 要实现接口中的抽象方法。

  }

5、使用

定义接口:

public interface IPlayGame {
  public void playGame();  //接口方法中不能有方法体
}

类实现接口1:

public class SmartPhone extends Telephone implements IPlayGame{

  @Override
  public void call() {
    System.out.println("通过语音打电话");
  }

  @Override
  public void message() {
    System.out.println("通过语音发短信");
  }

  @Override
  public void playGame() {
    System.out.println("具有了玩游戏的功能");
  }

}

类实现接口2:

public class Psp implements IPlayGame {

  @Override
  public void playGame() {
    System.out.println("具有了玩游戏的功能");
  }
}

使用:

public class Initail {
  /**
  * @param args
  */
  public static void main(String[] args) {
    IPlayGame ip1 = new SmartPhone();
    ip1.playGame();
    IPlayGame ip2 = new Psp();
    ip2.playGame();
  }

}

6、与匿名内部类配合使用

  匿名内部类就是没有名字的内部类,多用于关注实现而不关注实现类的名称

  public class Initail {
    /**
    * @param args
    */
    public static void main(String[] args) {

      //使用方式1
      IPlayGame ip3 = new IPlayGame() {
        @Override
        public void playGame() {
          System.out.println("使用匿名内部类的方式实现接口1");
        }
      };
      ip3.playGame();

      //使用方式2
      new IPlayGame() {
        @Override
        public void playGame() {
          System.out.println("使用匿名内部类的方式实现接口2");
        }
      }.playGame();
    }
  }

转载于:https://www.cnblogs.com/QiuLing/p/8545739.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值