Day25:接口详解

接口

1.1什么是接口

接口就像是定义好了一个大纲,并不会具体写什么东西,需要其他人去补充细节。

1.2接口的特点

  • 接口的关键字是interface

接口语句格式:public interface 接口名{}

public interface Jumpping{
   void jump();//接口的方法有且一定是抽象方法
}
  • 类与接口的关系是实现implements

格式:public class 类名 implements 接口名{}

public class Cat implements Jumpping{
    //实现类必须重写接口的所有的抽象方法
    @override
    public void jump(){
        System.out.println("猫跳高");
    }
}
  • 接口不能直接实例化,可以通过其实现类进行实例化

即参照多态的方式,通过实现类对象实例化。

多态的前提:有继承关系(实现)关系,有方法重写,有父类(接口)引用指向子类(实现类)对象

public class Application{
    public static void main(String[] args){
        //Jumpping j=new Jumpping();  接口不能直接实例化
        //需要通过多态的方式进行实例化
        Jumpping j=new Cat();
        j.jump();//多态形式的方法编译看左边,运行看右边
        //输出结果:猫跳高
    }
}
  • 接口的实现类要么全部重写接口的方法,要么本身为抽象类
//我们再建立一个狗实现类
/*public class Dog implements Jumpping{
    如果我们不想重写接口的方法,那么我们只有将实现类变为抽象类;但是成为抽象类以后,其子类还是需要重写接口的所有方法
}*/

1.3 接口的成员特点

成员特点即讨论其有没有成员变量、构造方法、成员方法

我们尝试在接口内加入成员变量、成员方法:

总结:

  • 接口中的属性均为常量、且为静态的,有着默认的修饰符:public static final
  • 接口中的成员方法都是抽象的;有着默认的修饰符:public abstract
  • 接口中没有构造器

注意:

接口不能实例化,只是通过其实现类实例化后,实现类对象的内存地址指向接口,接口就可以使用了。


1.4 类和接口的关系

类和类的关系:继承关系;只能单继承,不能多继承。

类和接口的关系:实现关系;可以单实现,也可以多实现,也可以在继承一个类的同时实现多个接口

接口和接口的关系:继承关系;可以单继承,也可以多继承


1.5 抽象类和接口的区别

成员区别:

抽象类:变量、常量、构造方法、抽象方法、非抽象方法

接口:常量、抽象方法

关系区别:

类与类:继承;单继承

类与接口:实现;单实现,多实现

接口与接口:继承;单继承,多继承

posted @ 2022-11-28 20:05  工地佬  阅读(117)  评论(0)    收藏  举报