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 ...
随机推荐
- 菜鸟Vue学习笔记(一)
我今年刚参加工作,作为一个后台Java开发人员,公司让我开发前端,并且使用Vue框架,我边学习边记录. Vue框架是JS的封装框架,使用了MVVM模式,即model—view—viewmodel模式, ...
- 3.3-1933 problem A
#include <stdio.h> int main(void){ int h; while(scanf("%d", &h) != EOF){ * (h-); ...
- find查找文件的时间问题
很多细节方面的东西没有到真正用的时候,是觉察不出来的,因为这个时间的问题出了问题,现在好好理一下,这个find的时间很容易就搞混了,一段时间不用,也忘了,也反映出来了自己的基础知识不是很牢固啊 f ...
- zabbix自动发现zabbix_agent后添加到所属组和链接到某些模块(九)
自动发现的两个操作:discovery(自动发现) and actions(发现后执行某个操作) 需求: 1:自动发现 Zabbix agent运行的主机 2:执行的动作 1)添加到所属组 ...
- UBUNTU中使用pip安装,提示cannt import main问题
在pip==8.1.1版本中,使用pip install Django==1.8.16时,提示 Traceback (most recent call last): File "/usr/ ...
- *浅解嵌入式中的BootLoader
本文只作为本人学习过程中的记录及时不时的突发奇想偶记.鄙人菜鸟一只,文中如有错误或疏漏,若读者肯不吝赐教,在下感激零涕.文章一直不断更新中 一.何为Bootloader 在嵌入式系统中,Bootloa ...
- Hibernate复习
第一天 Hibernate是一个持久层的ORM框架.两个配置文件, 类名.hbm.xml类的属性和表的列对应 hibernate.cfg.xml核心配置文件 Hibernate相关API: Confi ...
- mysqli字符编码
mysqli 字符编码: 汉字编码: 1.gbk 最久的编码格式,不能写繁体: 2.国内的gb2312: 3.国际的标准:utf-8; 查看数据库的字符编码: show variables like ...
- Activiti流程设计工具
在Actitivi工程的src/main/resources新建一个文件夹diagrams 然后右键,创建一个activiti Diagram 取名为helloWorld后finish 中间区域,是我 ...
- redis集群相关
1.主从数据库配置 为master数据库添加slave数据库只需要在从数据库的配置中添加配置: slaveof 主数据库地址 主数据库端口 当然,也可以通过命令: redis-server --por ...