热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

接口有什么作用

接口的作用:1、接口可以使项目分离,所有层都面向接口开发,提高开发效率;2、接口使代码和代码之间的耦合度降低;3、接口可以多实现,多继承,并且一个类除了接口之外,还可以继承其它类。

接口的作用:1、接口可以使项目分离,所有层都面向接口开发,提高开发效率;2、接口使代码和代码之间的耦合度降低;3、接口可以多实现,多继承,并且一个类除了接口之外,还可以继承其它类。

接口的作用:

(推荐教程:java入门程序)

1、可以使项目分离,所有层都面向接口开发,提高开发效率;

2、接口使代码和代码之间的耦合度降低,变得可插拔,可以随意切换;

3、接口和抽象类都能完成某个功能,优先选择接口,因为接口可以多实现,多继承,并且一个类除了接口之外,还可以继承其它类。

(视频教程推荐:java视频教程)

代码示例:

public interface CustomerService {    //定义一个推出系统的方法
    void logout();
}

package date818;//接口实现类1public class CustomerServierImpl implements CustomerService {    
    public void logout(){
        System.out.println("成功退出系统");
    }
}

package date818;//接口实现类2public class CustomerServiceImpl2 implements CustomerService{    
    public void logout(){
        System.out.println("hello world");
    }
}

package date818;public class TestCustomer {    
    public static void main(String[] args){  //需要执行CustomerServiceImpl和CustomerImpl2接口实现类中的logout方法
        //以下程序面向接口调用
        CustomerService cs = new CustomerServierImpl();//多态。父类型引用指向子类型对象
        //调用
        cs.logout();
        CustomerService cs2 = new CustomerServiceImpl2();
        cs2.logout();
    }
}

定义接口

package date818;
public interface Engine {    //所有发动机都可以通过这个接口启动
    void start();
}//定义实现接口的类
package date818;
public class Honda implements Engine{    
    public void start(){
        System.out.println("本田启动");
    }
}
package date818;public class Ymaha implements Engine{    
    public void start(){
        System.out.println("雅马哈启动");
    }
}//定义生产汽车的类package date818;public class Car {    //面向接口编程,不能将类实例化
    /**
     * 引用接口定义一个属性e,相当于
     * String name;
     * Integer age;
     * 类里定义的变量是成员变量;方法里定义的变量是局部变量。
     */
    Engine e ;//成员变量e

    Car(Engine e){        //定义构造方法,把局部变量e赋值给成员变量
        this.e=e;
    }    //对外提供的测试方法
    public void testEngine(){        //成员变量e
        e.start();
    }
}//定义测试类package date818;public class TestCar {    
    public static void main(String[] args){        //生产引擎
        Engine e = new Ymaha();        //根据构造方法传入参数生产汽车
        Car c = new Car(e);        //测试引擎
        c.testEngine();

        c.e = new Honda();//已经定义了一个实例,直接对实例的参数修改即可
        c.testEngine();
    }
}

以上就是接口有什么作用的详细内容,更多请关注其它相关文章!


推荐阅读
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • JVM钩子函数的应用场景详解
    本文详细介绍了JVM钩子函数的多种应用场景,包括正常关闭、异常关闭和强制关闭。通过具体示例和代码演示,帮助读者更好地理解和应用这一机制。适合对Java编程和JVM有一定基础的开发者阅读。 ... [详细]
  • 本文详细介绍了Java反射机制的基本概念、获取Class对象的方法、反射的主要功能及其在实际开发中的应用。通过具体示例,帮助读者更好地理解和使用Java反射。 ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • 本文总结了Java初学者需要掌握的六大核心知识点,帮助你更好地理解和应用Java编程。无论你是刚刚入门还是希望巩固基础,这些知识点都是必不可少的。 ... [详细]
  • Hadoop的文件操作位于包org.apache.hadoop.fs里面,能够进行新建、删除、修改等操作。比较重要的几个类:(1)Configurati ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
  • 【刷题篇】Java 不用Math.sqrt() 如何求一个数的平方根
    题目:在不用Math.sqrt()方法中如何求解一个大于1的数的平方根题解一、牛顿迭代法计算x2n的解,令f(x)x2-n,相当于求解f( ... [详细]
  • 多线程基础概览
    本文探讨了多线程的起源及其在现代编程中的重要性。线程的引入是为了增强进程的稳定性,确保一个进程的崩溃不会影响其他进程。而进程的存在则是为了保障操作系统的稳定运行,防止单一应用程序的错误导致整个系统的崩溃。线程作为进程的逻辑单元,多个线程共享同一CPU,需要合理调度以避免资源竞争。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 本教程详细介绍了如何使用 Spring Boot 创建一个简单的 Hello World 应用程序。适合初学者快速上手。 ... [详细]
author-avatar
手机用户2502861065
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有