接口

关于接口有几点注意的
  • 接口格式 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();
    }
}

在这里插入图片描述

发布了42 篇原创文章 · 获赞 6 · 访问量 2166
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览