接口介绍以及定义和使用--java进阶day02
1.接口介绍
日常生活中有很多接口,比如手机数据线的接口和手机充电器的接口

我们转换视角,站在设计者的角度思考接口,接口体现出规则,手机的接口大小和数据线的接口大小必须一致,各种接口的大小都要一致,都具有规则
所以,接口的本质就是设定规则

代码当中又该如何设定规则?
仔细一想,抽象方法不就有规则吗,子类继承后就必须进行重写。
2.接口定义:如果一个类中,只存在抽象方法,那么这个类存在的意义就只有声明规则,这种类我们会将它设计为java中的接口


1.接口定义格式


2.接口不能实例化
接口中只有抽象方法,创建对象出来没有任何意义
3.接口的使用
既然接口不能实例化,那该如何使用呢?仔细想想,既然接口是制定规则,那么我们就需要找人来遵守规则,所以我们要找类来实现接口

.

当子类实现了接口后,就必须按照它的规则执行,即要重写接口的抽象方法

4.实现类(接口的子类)

我们可以把实现接口认为是认干爹,干爹也是爹,所以也会继承到接口里面的所有抽象方法

所以我们要么重写抽象方法,要么就给抽象方法一个生存环境,把实现类也改为抽象类(不推荐,麻烦)

接口介绍以及定义和使用--java进阶day02的更多相关文章
- Java进阶篇(一)——接口、继承与多态
前几篇是Java的入门篇,主要是了解一下Java语言的相关知识,从本篇开始是Java的进阶篇,这部分内容可以帮助大家用Java开发一些小型应用程序,或者一些小游戏等等. 本篇的主题是接口.继承与多态, ...
- Java进阶(三十六)深入理解Java的接口和抽象类
Java进阶(三十六)深入理解Java的接口和抽象类 前言 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太 ...
- Apache Solr 初级教程(介绍、安装部署、Java接口、中文分词)
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...
- 我要告诉你:java接口中可以定义private私有方法
在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开 ...
- 【Java 8】函数式接口(二)—— 四大函数接口介绍
前言 Java8中函数接口有很多,大概有几十个吧,具体究竟是多少我也数不清,所以一开始看的时候感觉一脸懵逼,不过其实根本没那么复杂,毕竟不应该也没必要把一个东西设计的很复杂. 几个单词 在学习了解之前 ...
- “全栈2019”Java第八十九章:接口中能定义内部类吗?
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 菜鸡的Java笔记 第二十四 - java 接口的基本定义
1.接口的基本定义以及使用形式 2.与接口有关的设计模式的初步认识 3.接口与抽象类的区别 接口与抽象类相比,接口的使用几率是最高的,所有的 ...
- go语言之进阶篇文件常用操作接口介绍和使用
一.文件常用操作接口介绍 1.创建文件 法1: 推荐用法 func Create(name string) (file *File, err Error) 根据提供的文件名创建新的文件,返回一个文件对 ...
- Java进阶2 数组内存和对象的内存管理知识
Java进阶2 数组内存和对象的内存管理知识 20131028 前言: 在面试的时候,如果是Java的编程语言,也许你认为没有什么可以问的,只能够说明你对于Java了解的太浅了,几乎就是两个星期的节奏 ...
- 为什么这些java接口没有抽象方法?浅谈Java标记接口
在jdk的源码中,存在这样的一些接口,他们不包含任何的(抽象)方法,但是却广泛的存在. 这种接口我们称之为Mark Interface,也就是标记接口. 这些接口呢,我们不用来实现任何的方法,他们的作 ...
随机推荐
- WPF webbowser 交互
// <Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/ ...
- 彻底讲透Spring AOP动态代理,原理源码深度剖析!
1.AOP:[动态代理]定义 指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式: 2.基于注解aop的开发流程 1.导入aop模块:Spring AOP:(spring-asp ...
- 『Python底层原理』--CPython如何编译代码
前一篇我们介绍了CPython VM的运行机制,它基于一系列字节码指令来实现程序逻辑. 不过,Python字节码在完整描述代码功能上存在局限性,于是代码对象应运而生.像模块.函数这类代码块的执行,本质 ...
- nginx适配Overlay以及测试工具
本文分享自天翼云开发者社区<nginx适配Overlay以及测试工具>,作者:pan Overlay与Underlay介绍 Overlay网络和Underlay网络是一组相对概念,Over ...
- Docker安装教程
这里介绍两种安装方法:centsOS安装和Ubuntu安装 CentOS安装 linux内核版本建议3.8以上,作者本人使用的是3.10:查看内核版本命令:uname -r 一般CentOS7以上都可 ...
- IDEA中使用Yapi上传接口
一.Idea下载插件YapiUpload 二.修改该项目的隐藏文件夹idea .idea文件下修改misc.xml增加如下配置 <component name="yapi" ...
- tomcat配置用户名密码
1.配置tomcat-user.xml<role rolename="manager-gui"/><role rolename="manager-scr ...
- C语言程序设计手写笔记
最近自己录了一个自学C语言系列,笔记发出来,视频还在传
- vim编译和安装clang_complete插件
今天找到一个插件clang_complete可以进行语法补全,可能不是很好用.但是vim上用应该也差不多了 全文按照这个链接去操作, configure的时候我配置的目录是/usr/bin/vimv8 ...
- [HEOI2014]大工程 题解
发现可以直接建立虚树. 设 \(dp_{u,0/1/2}\) 表示第 \(u\) 个节点的子树内,所有选中节点到它的距离之和/选中节点中到它的最短距离/选中节点中到它的最长距离,\(as_{u,0/1 ...