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语法基础(十三)接口的更多相关文章

  1. Java语法基础(1)

    Java语法基础(1) 1.      Java是一门跨平台(也就是跨操作系统)语言,其跨平台的本质是借助java虚拟机 (也就是JVM(java virtual mechinal))进行跨平台使用. ...

  2. Java语法基础学习DayTwenty(反射机制续)

    一.Java动态代理 1.代理设计模式的原理 使用一个代理将对象包装起来, 然后用该代理对象取代原始对象. 任何对原始对象的调用都要通过代理. 代理对象决定是否以及何时将方法调用转到原始对象上. 2. ...

  3. java语法基础(一)

    这个是自己前两年做java视频教程时候的课件.感兴趣的同学可以参考下. 这里是纯粹的语法行总结. editplus的使用 选择项目目录 打开editplus 左侧目录导航栏 可以打开盘符,文件夹 可以 ...

  4. java语法基础

    Java的基本符号(token) Java的单词符号有五种:关键字.标识符.常量.分隔符和操作符. Java的字符集 Java 采用一种称为unicode的字符集,该字符集合是一种新的编码标准,与常见 ...

  5. Java语法基础(一)----关键字、标识符、常量、变量

    一.关键字: 关键字:被Java语言赋予特定含义的单词.组成关键字的字母全部小写.注:goto和const作为保留字存在,目前并不使用.main并不是关键字. 二.标识符: 标识符:就是给类,接口,方 ...

  6. java语法基础(总结)

    1,关键字:其实就是某种语言赋予了特殊含义的单词. 保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词. 2,标示符:其实就是在程序中自定义的名词.比如类名,变量名,函数名.包含 0-9. ...

  7. Java语法基础常见疑惑解答

    1. 类是java的最小单位,java的程序必须在类中才能运行 2. java函数加不加static有何不同 java中声明为static的方法称为静态方法或类方法.静态方法可以直接调用静态方法,访问 ...

  8. Java语法基础学习DaySeven

    ---恢复内容开始--- 一.包装类——Wrapper 1.定义:针对八种基本数据类型定义相应的引用类型——包装类(封装类) boolean——Boolean          byte——Byte ...

  9. Java语法基础学习DaySix

    一.JavaBean——可重用组件 1.JavaBean是指符合以下标准的Java类: (1)类是公共的 (2)有一个无参的公共的构造器 (3)有属性,且有对应的get.set方法 2.好处 用户可以 ...

  10. Java语法基础动手动脑

    仔细阅读示例:EnumTest.Java,运行它,分析运行结果? 你能得到什么结论?你掌握了枚举类型的基本用法了吗? EnumTest.java public class EnumTest { pub ...

随机推荐

  1. glog学习(一):glog的编译及demo

    windows平台: 1.下载glog代码.下载地址:https://github.com/google/glog 2.使用cmake工具,获得对应的工程文件sln. 3.打开sln文件,生成对应的l ...

  2. php 会话控制(关于session的维护与生命周期)

    Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器创建生成一个唯一的sessionID,用该sessionID为标识符来存取服务器端的Session存储空间,在会 ...

  3. CNN+BLSTM+CTC的验证码识别从训练到部署

    项目地址:https://github.com/kerlomz/captcha_trainer 1. 前言 本项目适用于Python3.6,GPU>=NVIDIA GTX1050Ti,原mast ...

  4. Vue-项目之免费课和购物车实现

    调整首页细节 固定头部 App.vue中代码 <style> body{ padding: 0; margin:0; margin-top: 80px; } </style> ...

  5. iOS兼容性(不断完善)

    1.iOs不支持iframe,不支持flash,如果移动端要嵌入视频,请用html5 的video标签.

  6. opencv简介

    Open Source Computer Vision Library.OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows和Mac OS操作系统上.它轻量级而 ...

  7. Linux 本地repo配置

    系统版本 centos6.9 配置方法 [local]name=localbaseurl=file:///home/systemimage/gpgcheck=1gpgkey=file:///etc/p ...

  8. C++Primer第五版——习题答案详解(八)

    习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第9章 顺序容器 练习9.1 a.list,需要按字典序插入,可能插入位置在中间 b.d ...

  9. [UE4]Tree View

    类似List View,但Tree View要求提供树形结构的数据.Tree View和Tile View都是继承自List View 一.创建一个名为“TreeEntry”的UserWidget,添 ...

  10. shell循环(两个日期比较,改变某个特定日期来改变当前比较值)

    需求:从当前时间前6个月开始执行某个语句,直到执行到当前日期的前一天.  shell脚本如下: #!/bin/bash yesterday=`date -d -1day +%Y%m%d` sixmon ...