Java14-java语法基础(十三)接口
Java14-java语法基础(十三)接口
一、接口
1、接口的作用
Java出于安全性、简化程序结构的考虑,不支持多继承而仅支持单继承。然而实际问题中很多情况下仅仅依靠单继承并不能将复杂的问题描述清楚。为了使Java程序的类层次更加合理,更符合实际问题的本质,Java语言提供接口来实现多重继承。
2、接口的定义及实现
1)接口的定义
接口是java中最重要的概念之一,他是一个用interface关键字定义的特殊类,也称为接口类型。用于描述系统对外提供的所有服务,但不包含具体实现。
[修饰符] interface 接口名 [extends 父接口名列表]{
静态常量数据成员声明; //用static和final修饰
抽象方法声明; //用abstract修饰
}
强调:
(1)接口没有构造方法
(2)接口中声明的方法默认都是抽象的
(3)接口中声明的成员默认都是static、final
2)接口的实现
[修饰符] class 类名 implement 接口列表{
成员变量;
成员方法;
}
强调:
(1)一个类可以有多个接口
(2)如果一个类实现了某个接口,就必须实现该类中的所有抽象方法
3、接口与接口,接口与类之间的关系
(1)接口可以多继承多个接口
Interface A extends B,c{}
(2)类可以实现多个接口
class A implements B,C{}
(3)类继承类实现接口
class A extends B implements C {}

4、多重继承实现案例
照相和上网功能,但不同的手机采用的技术不同。因此定义功能接口用来制定统一标准,而具体的实现由手机生产厂商来完成,它们的类结构如图所示。实现多重继承的类结构模型图如下:

5、小结
1)实现接口要注意哪些问题?
(1)如果抽象类实现接口,则可以不实现接口中的抽象方法;
(2)如果普通类实现接口,则要实现接口中的所有抽象方法;
(3)当引用接口的了,类中方法多余所实现的接口的方法,不要用接口创建引用,因为用接口创建的引用不能引用其实现类自己的独立的方法。
2、Java如何实现多重继承?
通过子类继承父类,同时实现多个接口来实现多重继承。
Java14-java语法基础(十三)接口的更多相关文章
- Java语法基础(1)
Java语法基础(1) 1. Java是一门跨平台(也就是跨操作系统)语言,其跨平台的本质是借助java虚拟机 (也就是JVM(java virtual mechinal))进行跨平台使用. ...
- Java语法基础学习DayTwenty(反射机制续)
一.Java动态代理 1.代理设计模式的原理 使用一个代理将对象包装起来, 然后用该代理对象取代原始对象. 任何对原始对象的调用都要通过代理. 代理对象决定是否以及何时将方法调用转到原始对象上. 2. ...
- java语法基础(一)
这个是自己前两年做java视频教程时候的课件.感兴趣的同学可以参考下. 这里是纯粹的语法行总结. editplus的使用 选择项目目录 打开editplus 左侧目录导航栏 可以打开盘符,文件夹 可以 ...
- java语法基础
Java的基本符号(token) Java的单词符号有五种:关键字.标识符.常量.分隔符和操作符. Java的字符集 Java 采用一种称为unicode的字符集,该字符集合是一种新的编码标准,与常见 ...
- Java语法基础(一)----关键字、标识符、常量、变量
一.关键字: 关键字:被Java语言赋予特定含义的单词.组成关键字的字母全部小写.注:goto和const作为保留字存在,目前并不使用.main并不是关键字. 二.标识符: 标识符:就是给类,接口,方 ...
- java语法基础(总结)
1,关键字:其实就是某种语言赋予了特殊含义的单词. 保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词. 2,标示符:其实就是在程序中自定义的名词.比如类名,变量名,函数名.包含 0-9. ...
- Java语法基础常见疑惑解答
1. 类是java的最小单位,java的程序必须在类中才能运行 2. java函数加不加static有何不同 java中声明为static的方法称为静态方法或类方法.静态方法可以直接调用静态方法,访问 ...
- Java语法基础学习DaySeven
---恢复内容开始--- 一.包装类——Wrapper 1.定义:针对八种基本数据类型定义相应的引用类型——包装类(封装类) boolean——Boolean byte——Byte ...
- Java语法基础学习DaySix
一.JavaBean——可重用组件 1.JavaBean是指符合以下标准的Java类: (1)类是公共的 (2)有一个无参的公共的构造器 (3)有属性,且有对应的get.set方法 2.好处 用户可以 ...
- Java语法基础动手动脑
仔细阅读示例:EnumTest.Java,运行它,分析运行结果? 你能得到什么结论?你掌握了枚举类型的基本用法了吗? EnumTest.java public class EnumTest { pub ...
随机推荐
- 小程序通过background-image设置背景图片
微信小程序通过background-image设置背景:只支持线上图片和base64图片,不支持本地图片:base64图片设置步骤如下: 1.在网站http://imgbase64.duoshiton ...
- springboot @RequestBody使用JsonSerialize与 JsonDeserialize自定义转参数,处理Date日期格式
JsonDeserialize: 1.请求接收的是一个json,并且由对象接收 @RequestMapping(value = "/query", method = {Reques ...
- bvlc_reference_caffenet网络权值可视化
一.网络结构 models/bvlc_reference_caffenet/deploy.prototxt 二.显示conv1的网络权值 clear; clc; close all; addpath( ...
- bootstrap模态框弹框后执行Ajax
如下: editModal:模态框ID <script> $(document).ready(function() { $('#editModal').on('hidden.bs.moda ...
- 一次完整的HTTP事务是怎样一个过程?(转)
HTTP协议 关于HTTP协议可以参考以下: HTTP协议漫谈 http://kb.cnblogs.com/page/140611/ HTTP协议概览 http://www.cnblogs.com/v ...
- 【C++】vector用法详解
转自:https://blog.csdn.net/fanyun_01/article/details/56842637#commentBox 一.简介 C++ vector类为内置数组提供了一种替代表 ...
- 如何让Excel单元格中的名字分散对齐
1 操作方式 开始->对齐方式->对齐->水平对齐->分散对齐(缩进) 2 优势 不会破坏数据的有效性
- activity--生命周期总结
22.Android禁止屏幕旋转 & 旋转屏幕时保持Act内容? 21.旋转屏幕Act执行的生命周期方法? 12.ActA与 ActB互相跳转生命周期情况? 11.Act的生命周期? ==== ...
- HTML---仿网易新闻登录页
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 3.Jmeter参数化
1.参数化的三种方式 ${变量} 1 用户定义的变量 2 添加配置元件 CSV Data Set Config ,导入.csv文档 3 利用函数助手中的函数获取参数值 主要用 _Random函 ...