Java中的接口

接口

接口优先原则:即可使用接口又可使用抽象类时,优先考虑使用接口。

1.定义:

接口就是抽象方法和全局常量的集合,在Java中接口使用interface关键字定义

interface IMessage{ 
public static final String MSG = "I am a biter" ; // 全局常量 public abstract void print() ; // 抽象方法 
}
2.接口使用原则

2.1 接口中只有public权限

在接口中public、static、final、abstract均可以省略不写,抽象类中一个也别想跑。

规范:接口中的属性与方法不要加任何修饰符,public1也不加。

2.2 当子类既需要实现接口又需要继承抽象类时,先使用extends继承一个抽象类,而后使用implements实现多个接口。

当父类与父接口也有共同子类时,父类与父接口也可以通过子类相互转换。

2.3 抽象类可以使用implements实现若干个接口,反之,接口无法继承抽象类。

2.4接口之间可以使用extends继承多个父接口。

interface IMessage{ 
abstract void print() ; // 即便不写public,也是public
 }
 class MessageImpl implements IMessage {
  void print() { 
  System.out.println("I am a biter") ; //权限更加严格了,所以无法覆写。
   } 
   }
3.接口作用

3.1 定义标准(USB接口)

3.2 表示能力(行为)

3.3 在分布式开发中暴露远程服务方法

一个抽象类可以使用implements实现多个接口,但是接口不能继承抽象类。

抽象类实现接口
interface IMessage {
 public void print() ; 
 }
 abstract class News implements IMessage{ 
 //News为抽象类,可以不实现IMessage中的抽象方法 
 // 抽象类中方法前面的abstract不能省略,否则就是普通方法 
 public abstract void getNews() ; 
 }
 class MessageImpl extends News { 
 public void print() { 
 System.out.println("I am a biter") ; 
 }
 public void getNews() {
  System.out.println("I am News") ; 
  }
   }
   public class Test{ 
   public static void main(String[] args) {
    IMessage m = new MessageImpl() ; 
    m.print() ; 
    // MessageImpl是抽象类和接口的共同子类 
    News news = (News) m ;
    news.getNews() ; 
    }
   }

此时的结构关系属于三层继承

一个接口可以使用extends继承多个父接口
interface A { 
public void printA() ;
}
interface B { 
public void printB() ;
 }
 interface C extends A,B { // 接口多继承
  public void printC() ;
   }
   class Impl implements C{
    public void printA() {} 
    public void printB() {} 
    public void printC() {} 
    }
    public class Test{
     public static void main(String[] args) {
    }
  }

接口可以定义一系列的内部结构,包括:内部普通类,内部普通类,内部接口。
其中,使用static定义的内部接口就相当于一个外部接口。

抽象类与接口的区别

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值