接口,与抽象类类似但是区别也很大,他们都是标签,用来提醒父类一定要实现的类里创建抽象方法。而接口类可以implements 多个接口,抽象类则只能父类只能继承一个抽象类,与抽象不同的是它不是继承组合关系,所以无法使用super关键字来调用接口里的方法,

接口的要求:

1.接口类必须使用interface关键字创建

2.接口类的父类必须使用implements来附属接口类

3.一个父类可以implements 多个接口(而抽象类的父类只能继承一个抽象类)

4.接口的所有量都是常量,接口类里会将量自动添加static final  关键字。

5.接口里的抽象方法在使用的时候必须需要在父类中重写

6.在Java1.8的新版本中,接口可以用default关键字在接口类中实现方法。而实现的方法不需要在父类中重写

7.接口中常量的调用可以直接用接口类调用也可以实例父类后调用,但是重写的抽象方法或者实现方法不行,必须new父类后实现。

package rom;

import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.WindowConstants; public class Xamle_1 implements demo {
public void demo1() {
System.out.println("重写接口里的demo1"); }
public void demo1_2() {
System.out.println("重写接口里的demo1_2"); } public static void main(String[] args) {
Xamle_1 xamle_1 = new Xamle_1();
xamle_1.demo1(); //调用重写后的demo1方法
xamle_1.demo2(); //用new的实例类,在接口中直接调用关键字default修饰的已经实现的方法,此方法不需要重写
System.out.println("调用接口中的常量:"+demo.a);//只有常量可以不用new 一个实例类,直接用接口类调用
System.out.println("调用接口中的常量:"+xamle_1.b); //用 new的实例类调用常量b }
}
interface demo {
public void demo1() ; //在接口中可以不写abstract关键字,因为接口中的抽象方法已经默认写了abstract
abstract public void demo1_2(); //与上面对比
default void demo2() {
System.out.println("default 关键字在接口中实现方法"); }
public static final int a = 100;
public static int b = 100; //虽然没有写但是接口的常量会默认写上final,所以接口中的常量是无法修改的 }

接口详解例子代码(附Java1.8的接口新特性)的更多相关文章

  1. Java接口 详解(二)

    上一篇Java接口 详解(一)讲到了接口的基本概念.接口的使用和接口的实际应用(标准定义).我们接着来讲. 一.接口的应用—工厂设计模式(Factory) 我们先看一个范例: package com. ...

  2. Java基础进阶:多态与接口重点摘要,类和接口,接口特点,接口详解,多态详解,多态中的成员访问特点,多态的好处和弊端,多态的转型,多态存在的问题,附重难点,代码实现源码,课堂笔记,课后扩展及答案

    多态与接口重点摘要 接口特点: 接口用interface修饰 interface 接口名{} 类实现接口用implements表示 class 类名 implements接口名{} 接口不能实例化,可 ...

  3. Java6.0中Comparable接口与Comparator接口详解

    Java6.0中Comparable接口与Comparator接口详解 说到现在,读者应该对Comparable接口有了大概的了解,但是为什么又要有一个Comparator接口呢?难道Java的开发者 ...

  4. 深度学习之卷积神经网络(CNN)详解与代码实现(一)

    卷积神经网络(CNN)详解与代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/10430073.html 目 ...

  5. ReadWriteLock 接口详解

    ReadWriteLock 接口详解 这是本人阅读ReadWriteLock接口源码的注释后,写出的一篇知识分享博客 读写锁的成分是什么? 读锁 Lock readLock(); 只要没有写锁,读锁可 ...

  6. JDBC常用接口详解

    JDBC中常用接口详解 ***DriverManager 第一.注册驱动 第一种方式:DriverManager.registerDriver(new com.mysql.jdbc.Driver()) ...

  7. Python - 元组(tuple) 详解 及 代码

    元组(tuple) 详解 及 代码 本文地址: http://blog.csdn.net/caroline_wendy/article/details/17290967 元组是存放任意元素集合,不能修 ...

  8. Python - 字典(dict) 详解 及 代码

    字典(dict) 详解 及 代码 本文地址: http://blog.csdn.net/caroline_wendy/article/details/17291329 字典(dict)是表示映射的数据 ...

  9. C#的String.Split 分割字符串用法详解的代码

    代码期间,把代码过程经常用的内容做个珍藏,下边代码是关于C#的String.Split 分割字符串用法详解的代码,应该对码农们有些用途. 1) public string[] Split(params ...

随机推荐

  1. scala IDE for Eclipse开发Spark程序

    1.开发环境准备 scala IDE for Eclipse:版本(4.6.1) 官网下载:http://scala-ide.org/download/sdk.html 百度云盘下载:链接:http: ...

  2. mariadb开机自启

    执行命令:systemctl enable mariadb 并由此想到,添加服务自启的命令格式: systemctl enable 服务名 当然关闭服务自启也是可以得: systemctl disab ...

  3. pandas初识

    pandas初识 1.生成DataFrame型的数据 import pandas as pd import numpy as np dates = pd.date_range('20130101',p ...

  4. ubuntu base make 未找到命令

    引用:https://blog.csdn.net/fenglibing/article/details/7096556 1.先放入UBUNTU安装盘到光盘中: 2.再按顺序执行以下的命令: sudo ...

  5. oracle--合并行数据(拼接字符串),获取查询数据的前3条数据...

    --标准函数Lpad 可以实现左补零,但是如果多于需要长度,则会截断字符串 SELECT LPAD ('1' , 3 , '0') FROM DUAL -- return 001 情况一:需要补零.  ...

  6. 同台同时多开DELPHI2007的解决办法

    Cannot create file "C:\Users\Administrator\AppData\Local\Temp\EditorLineEnds.ttr"这个问题的产生根据 ...

  7. C++进阶--理解左值和右值

    /* * 理解左值和右值 * * * 为什么要关心这个? * 1. 有助于理解C++结构,搞明白编译器的错误和警告 * 2. C++ 11中引入了右值引用,理解左值右值是前提 * */ /* * 简单 ...

  8. springboot springcloud 热部署

    本文转载自:https://www.cnblogs.com/moly/p/7978303.html 可以在配置修改某些文件重启,建议配置一个控制文件,只有此文件修改才会重启. 1. pom中添加: & ...

  9. Ubuntu 14.10 下安装伪分布式hdoop 2.5.0

    折腾了一天,其间配置SSH时候出现了问题,误删了ssh-keygen相关文件,导致配置SSH彻底萎了,又重装了系统.... 采用伪分布式模式,即hadoop将所有进程运行于同一台主机上,但此时Hado ...

  10. Feign api调用方式

    Feign使用简介 基本用法 基本的使用如下所示,一个对于canonical Retrofit sample的适配. interface GitHub { // RequestLine注解声明请求方法 ...