• Java进阶学习笔记15——接口概述


    认识接口:

    Java提供了一个关键字Interface,用这个关键字我们可以定义一个特殊的结构:接口。

    接口不能创建对象。

    注意:接口不能创建对象,接口是用来被类实现(implements)的,实现接口的类称为实现类。

    一个类可以实现多个接口(接口可以理解为干爹),实现类实现多个接口,必须重写全部接口的全部抽象方法,否则实现类需要定义成抽象类。

    父类只有一个,干爹能有多个。

    抽象类是需要继承的,继承只能单继承,你如果继承了抽象类,那你就不能继承其他类。

    1. package cn.ensource.d7_interface;
    2. // 实现类
    3. public class D implements B, C{
    4. @Override
    5. public void testb1() {
    6. }
    7. @Override
    8. public void testb2() {
    9. }
    10. @Override
    11. public void testc1() {
    12. }
    13. @Override
    14. public void testc2() {
    15. }
    16. }

    接口的好处(重点)

    1)弥补了类单继承的不足,一个类同时可以实现多个接口;

    2)让程序员可以面向接口编程, 这样程序员就可以灵活方便地切换各种业务实现。

    我们可以多创建几个方法,何必要通过接口来实现呢?

    这个是特别有必要的。

    其实可以理解为不是每个人都会所有人都会的,得靠具体实现的这个人到底会什么,接口就相当于这个实例化的人会的技能。

    开发的时候接口是别人写的,你是调别人的,所以具体的内容不是你写的。

    这样写的话,逻辑清晰,一看就看出哪里是重点,后期好维护。

    使用接口可以轻松方便地新建类,而不是在已有类中修改。

    implement接口可以显现地知道你是谁,能做什么?

    一个接口被多个类实现,有什么好处呢?

    面向接口编程。

    1. package cn.ensource.d8_interface2;
    2. public class Test {
    3. public static void main(String[] args) {
    4. // 目标:搞清楚使用接口的好处
    5. Driver s = new A();
    6. s.drive();
    7. Driver d = new B(); // 程序可以面向接口进行编程
    8. d.drive(); // 父类类型指向子类对象 多态
    9. }
    10. }
    11. class B implements Driver{
    12. @Override
    13. public void drive() {
    14. }
    15. }
    16. class A extends Student implements Driver, Singer{
    17. @Override
    18. public void drive() {
    19. System.out.println("A可以driver");
    20. }
    21. @Override
    22. public void sing() {
    23. System.out.println("A可以sing");
    24. }
    25. }
    26. class Student {
    27. }
    28. interface Driver {
    29. void drive();
    30. }
    31. interface Singer {
    32. void sing();
    33. }

    接口的好处:

    解决类单继承的问题,通过接口,我们可以让一个类有一个亲爹的同时,还可以找多个干爹去拓展自己的功能。

    为什么我们要通过接口,也就是去找干爹,来拓展自己的功能呢?

    因为通过接口去找干爹,别人通过你implements的接口,就可以显现地知道你是谁,从而也就可以放心的把你当做谁来用了。

    使用接口的第二个好处是什么?

    一个类我们说可以实现多个接口,同样,一个接口也可以被多个类实现的,这样做的好处是我们的程序就可以面相接口编程了,这样我们程序员就可以方便的灵活切换各种业务实现了。 而不用改后续代码了。

    接口不能实例化

    接口如何实现实例化呢?参照多态的方式,通过实现类对象实例化,这叫接口多态。

    多态的形式:具体类多态、接口类多态、接口多态。

    接口的子类:

    要么重写接口中的所有抽象方法。

    要么子类也是抽象方法。

  • 相关阅读:
    课程版块,外键相关
    计算机毕业设计Java-酒店管理系统-(源码+系统+mysql数据库+lw文档)
    丝绸之路网络安全论坛成功举办,开源网安受邀分享软件供应链安全落地经验
    每日算法刷题Day5-平方矩阵II和III、蛇形矩阵图解
    java计算机毕业设计无人智慧药柜系统设计源码+数据库+lw文档+系统+部署
    C语言程序设计算法题 -- lab07(1027 - 1030)
    只需两步折叠GoLand的控制台中多余的信息,控制台显示无效内容太多(GOROOT、GOPATH)
    26.K-均值算法的优化目标、随机初始化、聚类数的选择
    【Python】np.expand_dims()理解及实践
    SQLServer导出数据库字典
  • 原文地址:https://blog.csdn.net/chang_chunhua/article/details/139201273