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方法和构造函数) 引用:抽象类有 ...
随机推荐
- CSS动态表达式
样式:style:expression(脚本) 如: 1 _top: expression(this.offsetHeight); _top: expression(eval(document.doc ...
- 2016/11/10 kettle概述
ETL(Extract-Transform-Load,即抽取,转换,加载),数据仓库技术,是用来处理将数据从来源(以前做的项目)经过抽取,转换,加载到达目的端(正在做的项目)的过程.也就是新的项目需要 ...
- AQS系列(五)- CountDownLatch的使用及原理
前言 前面四节学完了AQS最难的两种重入锁应用,下面两节进入实战学习,看看JUC包中其他的工具类是如何运用AQS实现特定功能的.今天一起看一下CountDownLatch. CountDownLatc ...
- IT兄弟连 HTML5教程 响应式网站的内容设计
基于响应式开发网站,除了页面的布局是我们设计的重点,网站中显示的图片和文字也是我们不能轻视的内容. 1 响应式图片显示内容设计 真正具有响应性的Web设计是完全调整网站以满足访问者的设备.我们需要在 ...
- Redis两种持久化策略分析
Redis专题地址:https://www.cnblogs.com/hello-shf/category/1615909.html SpringBoot读源码系列:https://www.cnblog ...
- [ASP.NET Core 3框架揭秘] 跨平台开发体验: Mac OS
除了微软自家的Windows平台, .NET Core针对Mac OS以及各种Linux Distribution(RHEL.Ubuntu.Debian.Fedora.CentOS和SUSE等)都提供 ...
- C语言基于NIOSII的软件开发及流水灯设计
一.Quartus II 12.1 (32-Bit)进行硬件设计 1.所需要的系统元器件组成 2.系统电路图 二.Nios II 12.1 Software Build Tools for Eclip ...
- (办公)记事本_Linux权限
参考谷粒学院Linux教程:http://www.gulixueyuan.com/course/300/task/7084/show# linux权限,什么用户可以操作什么. 1.基本权限的作用: 1 ...
- canvas的介绍
1.我们前端的绘图技术有哪些: 统计图表:echarts 实时走势图:canvas: 在线画板:魔猴: HTML5游戏:three.js 2.我这里主要讲的是canvas绘图: <canvas& ...
- 关联mysql失败_Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezon'
关联mysql失败_Server returns invalid timezone. Go to ‘Advanced’ tab and set ‘serverTimezon’ 时区错误,MySQL默认 ...