接口的确很不好理解!!!!!那我来好好总结一下:

首先要理解接口是一个独立存在的,和类是不一样的东西,所以,直接用接口的定义是:

访问权限控制符 interface 接口名 [extends  接口列表] {
  常量;//接口中的变量都是默认以public static final修饰的
  抽象方法;//接口中的方法默认都是以public abstract修饰的,,注意!!!abstract 和private final  static 并存
  内部类;//接口中可以有内部类

  静态方法;//jdk8支持

  默认方法;//jdk8支持
}

  1. package com.xt.imp.test;
  2.  
  3. public interface Animals {
  4.  
  5. public static final int I=0;
  6.  
  7. public abstract void eat();
  8.  
  9. class heart{
  10.  
  11. }
  12.  
  13. public static void sleep() {
  14.  
  15. }
  16.  
  17. public default void work() {
  18.  
  19. }
  20. }

访问权限控制符:只能是public 和友好的   接口名和public 修饰的接口名一致

[extends  接口列表]代表:接口可以多继承接口,不能 继承类,对比之前的类只能单继承类

  1. package com.xt.imp.test;
  2.  
  3. public interface IA extends IMammal,IB {//接口可以多继承接口,不能 继承类,对比之前的类只能单继承类
  4.  
  5. }
  6.  
  7. interface IB{//接口前面的访问控制符只能是public 友好的,public修饰的只能在单个文件里
  8.  
  9. }

接口中没有构造方法,而抽象类有构造方法,抽象类不能被实例化,但是可以继承其构造方法

接口中没有 静态代码块,非静态代码块

类可以 实现多个接口。

实现接口中的抽象方法,必须严格按照重写的规则

  1. package com.xt.imp.test;
  2.  
  3. public class Whales implements IMammal,Animals {//类可以实现多个接口
  4.  
  5. @Override
  6. public void move() {
  7. System.out.println("移动。。。");
  8. }
  9. public static void main(String[] args) {
  10. System.out.println(IMammal.i);
  11. }
  12.  
  13. //实现接口中的抽象方法,必须严格按照重写的规则
  14. @Override
  15. public void eat() {
  16.  
  17. }
  18.  
  19. }

如果一个类实现了一个接口,但但没有实现接口中的所有抽象方法,那么这个类必须是abstract类。

如果多个接口中定义了相同的抽象方法,则在实现类中只实现其中一个即可

接口回调描述的是一种现象:接口声明的变量指向其实现类实例化的对象,那么该接口变量就可以调用接口中的抽象方法。

接口没有构造方法,不能创建自己的对象,但是可以引用实现类的对象

  1. package com.xt.imp.test;
  2.  
  3. public class Studens implements IMammal {
  4.  
  5. public static void main(String[] args) {
  6. IMammal im = new Studens();
  7. System.out.println(im.i);
  8. im.move();
  9. }
  10.  
  11. @Override
  12. public void move() {
  13. System.out.println("移动。。");
  14. }
  15. }

函数式接口:

  1. package com.xt.imp.test;
  2.  
  3. @FunctionalInterface
  4. public interface FunctionInterface {
  5.  
  6. void ran();
  7. }

java中接口知识点大总结的更多相关文章

  1. Java中接口和抽象类的比較

    Java中接口和抽象类的比較-2013年5月写的读书笔记摘要 1. 概述 接口(Interface)和抽象类(abstract class)是 Java 语言中支持抽象类的两种机制,是Java程序设计 ...

  2. 浅谈Java中接口与抽象类的异同

    浅谈Java中接口与抽象类的异同 抽象类和接口这两个概念困扰了我许久,在我看来,接口与抽象类真的十分相似.期间也曾找过许许多多的资料,参考了各路大神的见解,也只能是简简单单地在语法上懂得两者的区别.硬 ...

  3. 【JAVA零基础入门系列】Day9 Java中的那个大数值

    什么是大数值?用脚趾头想也知道,当然是"大"的数值(233).Java中有两个用于表示大数值的类,BigInteger和BigDecimal,那到底能表示多大的数值呢?理论上,可以 ...

  4. 转载 - java中接口的向上转型。和多态性

    发现一篇对接口总结很精简的文章 1.在java中接口就是一个完全抽象的类,跟抽象类一样不能产生对象,但是可以作为对象的引用,可以由其实现类向上转型,它就跟超类一样, 向上转型了,可以很好的利用接口,可 ...

  5. Java 中接口和抽象类的 7 大区别!

    本文已收录<Java常见面试题>:https://gitee.com/mydb/interview ​ Java 是一门面向对象的编程语言,面向对象的编程语言有四大特征:抽象.封装.继承和 ...

  6. java中接口和抽象类有什么区别,举例!

    2)接口和抽象类有什么区别?答:马克-to-win:抽象类里可以有实现的方法,接口里不能有,所以相对来讲各方面实现都简单(尤其动态方法调度).另外:类可以实现多个接口.反过来说,也正是抽象类一个致命伤 ...

  7. 关于java中接口定义常量和类定义常量的区别

    /** * * @author YZJ * @Description java中定义常量的最佳方法 */ public final class Contants{ /** * @Description ...

  8. java中接口之间的继承

    最近在读一些源码的时候突然发现了一个很神奇的东西,它的原始形态是这样的: 在这行代码中,BlockingDeque.BlockingQueue和Deque是三个接口.刚发现这个问题时,我是十分吃惊的, ...

  9. JAVA中接口与抛出异常的相关知识

    1.接口概念:接口可以理解为一种特殊的类,由全局常量和公共的抽象方法所组成. 类是一种具体实现体,而接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部数据,也不关心这些类里方法的实现细节,它只 ...

随机推荐

  1. C# WebServices 客户端服务端

    一.编写一个WebService 开发环境:VS2012 1.编写webservice阶段 打开VS2012,新建一个空的web应用程序,我这里用的Framework版本是4.5的 新建好web应用程 ...

  2. mysql基础知识语法汇总整理(一)

    mysql基础知识语法汇总整理(二)   连接数据库操作 /*连接mysql*/ mysql -h 地址 -P 端口 -u 用户名 -p 密码 例如: mysql -u root -p **** /* ...

  3. flask 第八篇 实例化flask时的参数配置

    Flask 是一个非常灵活且短小精干的web框架 , 那么灵活性从什么地方体现呢? 有一个神奇的东西叫 Flask配置 , 这个东西怎么用呢? 它能给我们带来怎么样的方便呢? 首先展示一下: from ...

  4. Nginx-rtmp之监听端口的管理

    1. 概述 监听端口属于 server 虚拟主机,它是由 server{} 块下的 listen 配置项决定的. 每监听一个 TCP 端口,都将使用一个独立的 ngx_rtmp_conf_port_t ...

  5. 【2】PRD文档介绍

    首先,我想说,题主是一个不严肃的人(严肃脸),所以每次干个啥事之前我都喜欢唠唠嗑,说说废话,沟通沟通感情,曾经以为自己将会成为一个幻想中的产品经理那般大展身手,作为非计算机专业出身的应届生,后来才发现 ...

  6. java用Annotation注入到成员Bean对象

    java用Annotation注入到成员Bean对象 在使用一些java框架的时候,经常看到一些注解,而且使用注解之后就可以免去一些xml的繁琐配置,本文记录如何通过注解获得成员Bean对象. 一.首 ...

  7. echarts修改X,Y轴上的颜色

     分为2.0和3.0 一.2.0 修改的代码: x轴: xAxis : [ { type : 'category', data : ['<30','30-','40-','50-','60-', ...

  8. 內部作业 OH01 0001710000 无价格可确定

    在CO15报工时,提示:“內部作業 OH01 0001710000 無價格可確定” 出现以上错误信息,表示没有在KP26维护价格, 只需要进入KP26维护成本中心和作业类型的价格即可, 具体操作如下图 ...

  9. delphi 双击dbgrid 调用另一窗体的例子

    unit Unit1; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Form ...

  10. Bat:IP切换,内外网切换,路由设置内外网同时连接

    1.IP切换: @echo off ::双冒号表示注释,注释只能单独一行写,@表示不让执行的命令又显示在屏幕上 cls ::清屏 color c ::设置显示字体颜色 set IP=10.10.17. ...