接口

接口中的方法全都是抽象方法,用来指定一些规则,让子类去重写。接口的作用主要体现在一下两点

1.指定规则
2.利用这些规则给类做功能扩展

接口的定义和使用

接口使用interface关键字来定义,使用implements来实现。

 1 //定义接口
2 public interface Inter{
3 //接口中的抽象方法
4 public abstract void method();
5 }
6
7 //实现接口
8 public class InterImpl implements Inter{
9 //重写抽象方法
10 @Override
11 public void method(){
12 System.out.println("重写实现类方法");
13 }
14 }
15
16 public class Demo1{
17 public static void main(String[] args){
18 //创建实现类对象
19 InterImpl impl = new InterImpl();
20 //调用方法
21 impl.method();
22 }
23 }

接口的成员特点

1.接口中的成员变量,默认被 public static final 修饰
2.接口中的方法,默认被 public abstract 修饰
3.接口中不能写构造方法

JDK7以后对接口做了一些更新
JDK7: 接口中的方法全都是抽象方法,子类【必须重写】

JDK8: 允许在接口中写默认方法(被 public default 修饰的方法),【可选重写】
如果多个接口中有相同的默认方法,子类必须重写

允许在接口中写静态方法(被 public static 修饰),使用接口名调

JDK9: 允许在接口中写私有方法 (被 private 修饰),只能在本接口中使用

类与接口的关系

1.类与类的关系:只能单继承
2.类与接口的关系:一个类在继承父类的同时,可以实现多个接口
3.接口与接口关系:一个接口可以继承多个接口

抽象类和接口的区别

主要是设计思想上的区别:
父类(抽象类): 体现的设计思想是【共性抽取】
接口: 体现的设计思想是【功能扩展】

Java_接口的更多相关文章

  1. java_接口和抽象类的区别

    1. 接口只能定义抽象方法,不包含已经提供实现的方法. 抽象类可以包含普通方法 2. 接口不能定义静态方法.抽象类可以定义静态方法 3. 接口里只能定义静态常量filed,不能定义普通filed. 抽 ...

  2. java_接口的应用

    package com.test; interface USB{ //创建一个USB接口,所有的操作要按照这个标准来工作 void start();//默认为public void stop(); } ...

  3. Java_接口与抽象类

    接口: 接口,英文interface,在java中,泛指供别人调用的方法或函数.接口是对行为的一种抽象. 语法: [public] interface InterfaceName{} 注意: 1)接口 ...

  4. JAVA_接口_默认方法&静态方法

    1.小结(注意): 1.接口中无法定义成员变量,但是可以定义常量,其值不可以改变,默认使用public static final修饰 2.接口中,没有构造方法,不能创建对象 3.接口中,没有静态代码块 ...

  5. Java_接口回调与匿名内部类

    匿名内部类 警告:匿名内部类本质上是一个对象 如果有一个接口或者抽象类,必须要用class定义一个实现类写重写抽象方法,才能创建对象并使用. 匿名内部类就是省略了用class定义子类的过程,直接使用父 ...

  6. ooday07 Java_接口

    笔记: 接口: 是一种引用数据类型 由interface定义 只能包含常量和抽象方法------默认权限是public 接口不能被实例化 接口是需要被实现/继承,实现/派生类:必须重写所有抽象方法 一 ...

  7. java_基础_接口和抽象类

    1.接口 java中接口的存在意义是:让多个继承该接口的类实现多态,让多个类有相同的特征 示例代码: interface MyInterface{ void myMethod(); } class T ...

  8. Java_日志接口实现

    日志的接口实现:改用slf4j实现日志功能 为什么要使用slf4j,而不是用log4j或者其他日志框架? 因为slf4j只是规定了一堆实现了日志的接口,并不关心日志怎么实现,这样就可以让项目脱离对日志 ...

  9. java_抽象类、接口、多态的使用

    抽象类 抽象类:包含抽象方法的类. 抽象方法 : 没有方法体的方法. 使用 abstract关键字修饰方法,该方法就成了抽象方法,抽象方法只包含一个方法名,而没有方法体. 格式为:修饰符 abstra ...

随机推荐

  1. Androi Studio 之 LinearLayout

    LinearLayout •常用属性 •注意事项 当  android:orientation="vertical"  时, 只有水平方向的设置才起作用,垂直方向的设置不起作用 a ...

  2. git操作初启篇(一)

    关于git是什么我想我也不用多说什么,其实关于git的操作在他们的官网上有详细的说明,一项新的技术官网上的一定是最权威的,所以学习一门技术我个人更倾向于看官网,下面的是git的官网https://gi ...

  3. JS基础学习第五天

    作用域 作用域简单来说就是一个变量的作用范围.在JS中作用域分成两种: 1.全局作用域 直接在script标签中编写的代码都运行在全局作用域中全局作用域在打开页面时创建,在页面关闭时销毁.全局作用域中 ...

  4. PBFT共识算法详解

    PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错) 一.概述 拜占庭将军问题最早是由 Leslie Lamport 在 1982 年发表的论文<T ...

  5. 201871030109-韩诚 实验一 软件工程准备—Blog

    项目 内容 课程班级博客链接 18级卓越班 这个作业要求链接 软件工程准备-Blog 我的课程学习目标 (1)学习博客园软件开发者学习社区使用技巧和经验(2) 掌握软件工程导论这门课程的基础理论知识 ...

  6. UnitFourSummary

    目录 第四单元架构设计 taskOne taskTwo taskThree 四个单元架构设计与OO方法理解的演进 四个单元架构设计 UnitOne UnitTwo UnitThree UnitFour ...

  7. OO_Unit1_表达式求导总结

    OO_Unit1_表达式求导总结   OO的第一单元主要是围绕表达式求导这一问题布置了3个子任务,并在程序的鲁棒性与模型的复杂度上逐渐升级,从而帮助我们更好地提升面向对象的编程能力.事实也证明,通过这 ...

  8. 如何在 NET 程序万种死法中有效的生成 Dump (下)

    一:背景 上一篇我们聊到了如何通过 procdump 抓取 cpu爆高 和 内存暴涨 两种情况,这一篇再聊聊如何去抓程序 挂死 和 意外退出. 二:程序挂死 1. 定义 程序挂死 简单的说就是程序没有 ...

  9. k8s 证书更新操作

    kubernetes证书更新 版本:1.14.2,以下操作在3台master节点上操作 1.各个证书过期时间 /etc/kubernetes/pki/apiserver.crt #1年有效期 /etc ...

  10. 三维 WebGIS 新玩具:OpenGlobus

    代码仓库地址:https://github.com/openglobus/openglobus 原创.@秋意正寒 目录 1 简介 2 HelloGlobus 3 在 Vite 中与 vue3 集成 4 ...