Java_接口

作者: Ethan丶Xiao | 来源:发表于2018-04-25 18:20 被阅读0次

1、在Java中,最小的单元是类,接口就是一个特殊的类;

Java的接口规范:用于定义一组抽象方法,表示某一类事物必须具有的功能,要求实现类必须要实现该接口并提供方法实现;

定义类的语法[public] class 类名{}

定义接口的方法[public] interface 接口名{}

接口起名:表示具有某些能力的,习惯用able结尾;

2、接口存在的成员

1):接口中没有构造器;不能创建对象;接口中,不能定义普通方法;

2):接口中定义的字段,实质是全局静态常量;默认使用 public static final 修饰;

3):接口中定义的方法是公共的抽象方法,默认的使用public abstract修饰方法;

一般的,在定义接口方法时,不使用修饰符

4):接口中定义的内部类,都是公共的静态内部类;默认使用public static修饰内部类;

5):接口只能继承接口,不能继承类;接口支持多继承;

3、标志接口:

接口中没有没有任何成员,就仅仅只是一个标志;其他的类实现该接口 ,就属于该家族;

4、接口的实现

接口仅仅定义了 某一些事物应该具备的某些功能,但是并没有提供任何实现;

此时,必须提供类,再让类去实现接口,比覆盖接口中的方法,从而实现接口中的功能;

语法:[修饰符] 类名 extends 父类 implements 接口1,接口2{ };

类实现多个接口,弥补了类的单继承关系;

接口和实现类之间的关系,称为实现关系;使用implements来表示;(有时候也称为继承关系)

也可以理解为接口是实现类的父类;实现类就是接口类的子类; 

5、面向接口编程

接口  变量 = 创建实现类对象 // 多态思想;

接口和实现类的多态关系才是使用最多的;

6、接口和抽象类的区别

相同点:

都应当位于继承的顶端,取用被其他类实现或继承;

都不能实例化;

都可以定义抽象方法,其子类、实现类必须复写这些方法;

不同点:

接口没有构造方法,抽象类有构造方法;

一个类只能继承一个直接父类,接口是多继承的,并且支持一个类实现多个接口;

成员变量:接口默认是 public static final,抽象类默认是包权限;

方法:接口里面定义默认是 public abstract,抽象类默认是包权限;

内部类:接口里面定义默认是 public static ,抽象类默认是包访问权限;

如果接口和抽象类都能完成相同的功能,那么尽量使用接口,(面向接口编程);

设计模式:接口和抽象类集合使用;

7、面向接口的好处

多态的好处:把实现类的对象赋给接口类型变量,屏蔽了不同实现类之间的实现差异,从而做到通用编程;

相关文章

  • Java_接口

    1、在Java中,最小的单元是类,接口就是一个特殊的类; Java的接口规范:用于定义一组抽象方法,表示某一类事物...

  • Java_实例_接口实例

  • Java_类和对象(多态 接口)

    接口 多个无关的类可以实现同一个的接口. 一个类可以实现多个无关的接口.但只能继承一个抽象类. 接口中的属性只能是...

  • Java_抽象类与接口

    1.知识点: 1.抽象类2.接口 2.知识点的运用: 1.抽象方法: 抽象类中包含抽象方法。抽象方法是一种特殊的方...

  • Java书籍资料整理

    http://en.wikipedia.org/wiki/Template:Java_%28software_pl...

  • 雪花算法

    雪花算法的原理和实现Java_雨夜青草的博客-CSDN博客_雪花算法 64 = 1 41 10 12

  • alibaba-nacos-config 阿里的nacos

    参见:SpringBoot使用Nacos作为配置中心服务和服务注册中心_java_牧竹子-CSDN博客 手册参见:...

  • Java_接口与抽象类的小程序

    1.代码: 用输入输出语句表示窗口的创建主函数: 窗口:抽象函数与接口的实现 定义抽象类(窗口主要的操作) 定义接...

  • java_多线程

    java_多线程 线程创建方式;join用法; sleep和wait区别; 线程安全和不安全的java集合; St...

  • Java 调用jni方法

    两种实现方式 Java_包名类名方法名 RegisterNatives方法 native 方法如下 第一种方式:在...

网友评论

    本文标题:Java_接口

    本文链接:https://www.haomeiwen.com/subject/zziylftx.html