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 ...
随机推荐
- [JAVA]为什么==和equals总让新手迷惑? 详解 关系操作符 == 和 equals
关系操作符==和 类的equals方法都可以用来比较两个类是否相同,但实际用起来却经常产生令JAVA新手迷惑的结果. 先看一段示例代码: public class HelloWorld { publi ...
- py-day3-3 python 函数的作用域
def test1(): print('in the test1') def test(): print('in the test') return test1 print(test) res = t ...
- 基于CRF工具的机器学习方法命名实体识别的过
[转自百度文库] 基于CRF工具的机器学习方法命名实体识别的过程 | 浏览:226 | 更新:2014-04-11 09:32 这里只讲基本过程,不涉及具体实现,我也是初学者,想给其他初学者一些帮助, ...
- 使用Tensorflow操作MNIST数据
MNIST是一个非常有名的手写体数字识别数据集,在很多资料中,这个数据集都会被用作深度学习的入门样例.而TensorFlow的封装让使用MNIST数据集变得更加方便.MNIST数据集是NIST数据集的 ...
- asp.net验证码
asp.net 生成验证码问题 .添加一个.ashx文件 <%@ WebHandler Language="C#" class="CheckCode" % ...
- Python数字(Number)
Python 数字数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变数字数据类型得值,将重新分配内存空间. 以下实例在变量赋值时 Number 对象将被创建:var1 = 1var2 ...
- npm安装与使用
NPM 使用介绍 摘自:http://www.runoob.com/nodejs/nodejs-npm.html NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题, ...
- clear 属性
clear属性:规定元素的哪一侧不允许有其他的浮动元素 Example: <html> <head> <style type="text/css"&g ...
- 有哪些你不知道的python小工具
python作为越来越流行的一种编程语言,不仅仅是因为它语言简单,有许多现成的包可以直接调用. python中还有大量的小工具,让你的python工作更有效率. 1.- 快速共享 - HTTP服务器 ...
- oracle入坑日记<五>数据表
1 数据表 1.1.数据表是存放数据字段信息的地方:在Oracle,数据表拥有者单位是用户,同时数据表属于表空间.如: 登录my_user用户在orcl表空间下创建的表就是 my_user用户在o ...