Java连载55-接口的作用、接口举例
一、接口的作用
1.可以使项目分层,所有层都面向接口开发,开发效率提高了。
2.接口使代码和代码之间的耦合度降低,就像内存条和主板的关系,变得“可插拔”,可以随意切换。
总结:接口和抽象类能够完成某个功能,优先选择接口。因为接口可以多实现、多继承。并且一个类除了实现接口之外,还可以去继承其他类(保留了类的继承)。
层次为:
测试类=====接口=====实现类
我们首相定义好接口,然后测试类使用接口定义好的变量或者方法进行调用,实现类则根据接口的定义来编写接口的实现类。
例如:Jiekou j1 = new Shixianlei();其中类Shixianlei是接口Jiekou的实现。
二、这里举个例子
(1)创建一个"引擎“接口
(2)创建”奔驰“和”奥迪“两个引擎接口的实现类
(3)创建一个”车”类,里面可以加入两种引擎
(4)最后创建一个测试类,用来测试两种引擎的车
package com.bjpowernode.java_learning;
public interface D55_1_Engine {
public void launch();
}
package com.bjpowernode.java_learning;
public class D55_2_Benz implements D55_1_Engine{
public void launch() {
System.out.println("Benz引擎启动");
}
}
package com.bjpowernode.java_learning;
public class D55_3_Audi implements D55_1_Engine {
public void launch() {
System.out.println("Audi引擎启动");
}
}
package com.bjpowernode.java_learning;
public class D55_4_Car {
D55_1_Engine e;//这个类中的成员变量创建的必要性,这是为了能够让引擎的对象传进来,进行引擎对象的调用
D55_4_Car(D55_1_Engine e){
this.e = e;
}
public void testEngine() {
e.launch();
}
}
package com.bjpowernode.java_learning;
public class D55_5_test {
public static void main(String[] args) {
//生产引擎
D55_1_Engine e1 = new D55_2_Benz();
D55_1_Engine e2 = new D55_3_Audi();
//生产汽车
D55_4_Car c1 = new D55_4_Car(e1);
D55_4_Car c2 = new D55_4_Car(e2);
c1.testEngine();
c2.testEngine();
}
}

三、源码:
D55_1_Engine.java
D55_2_Benz.java
D55_3_Audi.java
D55_4_Car.java
D55_5_test.java
地址:
https://github.com/ruigege66/Java/blob/master/D55_1_Engine.java
https://github.com/ruigege66/Java/blob/master/D54_2_InterfaceExercise.java
https://github.com/ruigege66/Java/blob/master/D55_3_Audi.java
https://github.com/ruigege66/Java/blob/master/D55_4_Car.java
https://github.com/ruigege66/Java/blob/master/D55_5_test.java
2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

Java连载55-接口的作用、接口举例的更多相关文章
- Java连载54-两种单例模式、接口详解
一.单例模式分为两种: (1)饿汉式单例:在类加载阶段就创建了一个对象. (2)懒汉式单例:用对对象的时候才会创建对象.(连载53中例子就是懒汉式) 饿汉式举例: package com.bjpowe ...
- C#学习笔记(17)——C#中接口的作用
说明(2017-7-17 23:50:48): 原文: 接口的作用 接口的作用(C#)(另一篇) C#接口是一个让很多初学C#者容易迷糊的东西,用起来好像很简单,定义接口,里面包含方法,但没有方法具体 ...
- java 接口的作用和好处
1.java 接口的作用 http://blog.csdn.net/hack_bug/article/details/7634737 2.一位Java大牛的回答 很多JAVA初级程序员对于接口存在的意 ...
- OpenJDK源码研究笔记(二)-Comparable和Comparator2个接口的作用和区别(一道经典的Java笔试面试题)
Comparable和Comparator是JDK中定义的2个比较接口,很相似,但又有所不同. 这2个接口的作用和区别也是Java中的常见经典面试题. 下面我们就来详细介绍下这2个接口的定义.作用.区 ...
- C# 接口的作用浅谈举例(转)
转:http://blog.csdn.net/liuqinghui1990/article/details/77171051 我初次接触接口(Interface),对接口的作用有点迷茫,C#接口中包含 ...
- java 标识接口的作用
标识接口的作用 标识接口是没有任何方法和属性的接口.标识接口不对实现它的类有任何语义上的要求,它仅仅表明实现它的类属于一个特定的类型. 标接口在Java语言中有一些很著名的应用,例如我们常用的Arra ...
- 【Java面试题】45 什么是java序列化,如何实现java序列化?或者请解释Serializable接口的作用。
我们有时候将一个java对象变成字节流的形式传出去或者从一个字节流中恢复成一个java对象,例如,要将java对象存储到硬盘或者传送给网络上的其他计算机,这个过程我们可以自己写代码去把一个java对象 ...
- JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]
类的继承 Java只支持单继承,不允许多重继承- 一个子类只能有一个父类- 一个父类可以派生出多个子类这里写图片描述子类继承了父类,就继承了父类的方法和属性.在子类中,可以使用父类中定义的方法和属性, ...
- Java学习日记-7 抽象类和接口
一.抽象类 abstract修饰:类和类中的方法 抽象方法:abstract type name(parameter-list);(abstract不能修饰static方法和构造函数) 引用:抽象类有 ...
随机推荐
- 【JS】312- 复习 JavaScript 严格模式(Strict Mode)
点击上方"前端自习课"关注,学习起来~ 注:本文为 < JavaScript 完全手册(2018版) >第30节,你可以查看该手册的完整目录. 严格模式是一项 ES5 ...
- 【VMware】The VMX process exited permaturely
问题现象: 开启虚拟机时出现如图问题:虚拟机退出过早 解决方法: 以管理员身份运行cmd,输入netsh winsock reset ,回车然后重启
- 从多谐振荡器详细解析到555定时器基本电路(控制LED闪烁)
在学期末,笔者参加了学校的电工实习,前六天做都很快,但是今天要做一个关于555多谐振荡器的LED闪烁电路,由于笔者没有提前准备,导致今天就算把电路搭建出来也不懂具体原理,耗费了不少时间,所以我打算专门 ...
- 判断浏览器是否启用cookie
<!DOCTYPE html> <html> <body onload="checkCookies()"> <script> fun ...
- C语言中表达n次方
C语言中表达n次方可以用pow函数. 函数原型:double pow(double x, double y) 功 能:计算x^y的值 返 回 值:计算结果 举例: double a; a = p ...
- ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 D 80 Days (线段树查询最小值)
题目4 : 80 Days 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 80 Days is an interesting game based on Jules Ve ...
- Ansible自动化部署入门到进阶笔记
目录 一.基本部署 安装Ansible Ansible配置文件 定义Inventory 使用秘钥方式连接 使用帮助 Ansible命令应用基础 二.常见模块 三.Ansible playbook 四. ...
- JS---案例:移动元素,封装动画函数
案例:移动元素,封装动画函数 1. div要移动,要脱离文档流---position:absolute 2. 如果样式的代码是在style的标签中设置,外面是获取不到 3. 如果样式的代码是在styl ...
- 带你了解Android Jetpack
1.Jetpack主要特性有以下三点: 1.加速开发组件可单独使用,也可以协同工作,当使用kotlin语言特性时,可以提高效率. 2.消除样板代码Android Jetpack可管理繁琐的Activi ...
- docker学习笔记---基本命令
[root@docker ~]# docker Usage: docker [OPTIONS] COMMAND A self-sufficient runtime for containers Opt ...