接口

关于接口有几点注意的
  • 接口格式 interface 接口名 {}
  • 实现接口的类 class 类名 implements 接口名 {}
  • 接口实例化的方式:
    通过实现接口的类,来实例化这个接口(动态多态)
  • 接口的子类
    a、抽象类
    b、具体类(实现接口中的所有抽象方法)
  • 接口里面的成员,只能是public static final的(接口中的mem虽然我们并没有public static final这样定义,但是还是public static final的)
  • 接口里面的方法(但是本质上都是public abstract,比如说IMyFirstInterface中的func方法,细心的同学会发现,如果把鼠标移到func上,会发现它还是abstract)
    a、abstract
    b、default
    c、static
  • 类与类,类与接口,接口与接口的关系:
    类与类:
    继承关系,只能单继承,可以多层继承。
    类与接口:
    实现关系,可以单实现,也可以多实现。
    并且还可以在继承一个类的同时实现多个接口。
    接口与接口:
    继承关系,可以单继承,也可以多继承。
  • 接口没有构造方法

为了加深读者对上面几点的理解,请看一个例子。
首先给出两个接口

public interface IMyFirstInterface
{
    public static final int num=10;
    int mem=12;

    public abstract void fun();

    void func();
}
public interface IMySecondInterface
{
    int mem=11;
}

接口的单实现

public class ImplementsMyFirstInterface implements IMyFirstInterface
{

    @Override
    public void fun()
    {
        System.out.println("这是一条向北的通向罗马的路");
    }

    @Override
    public void func()
    { }
    
}

接口的多实现:

public class ImplementsInterface implements IMyFirstInterface, IMySecondInterface
{
    public ImplementsInterface()
    { }

    @Override
    public void fun()
    {
        System.out.println("这是一条往南通向罗马的路");

    }

    @Override
    public void func()
    { }

}

再给出一个test类

public class Test
{
    public static void main(String[] args)
    {
        // IMyFirstInterface first=new IMyFirstInterface();//接口不能直接实例化
        ImplementsInterface first=new ImplementsInterface();
        System.out.println(ImplementsInterface.num);
      //System.out.println(ImplementsInterface.mem);//字段有歧义,两个接口中都有mem
        first.fun();
        System.out.println(first instanceof ImplementsInterface);
        System.out.println(first instanceof IMyFirstInterface);
        System.out.println(IMyFirstInterface.mem + "," + IMySecondInterface.mem);
        System.out.println("================");
        IMyFirstInterface f=new ImplementsInterface();
        IMyFirstInterface m=f;
        m.fun();
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值