【java】接口的详解[通俗易懂] -金沙1005

【java】接口的详解[通俗易懂]一、前言前面我们说了抽象类的概述,我们对抽象类也有个认识和理解了,现在我们学习十分重要的内容接口,接口这个词比较的抽象,但其实也是十分好理解的。二、接口简单的说,接口就是一种被规范的标准,只要符合这个标准都可以通用,接口的表现在于对行为的抽象。…

目录

一、前言

二、接口

接口的格式

三、接口的特点

接口的使用

四、类与接口的关系

接口多重继承的好处


前面我们说了抽象类的概述,我们对抽象类也有个认识和理解了,现在我们学习

十分重要的内容接口,接口这个词比较的抽象,但其实也是十分好理解的。

简单的说,接口就是一种被规范的标准,只要符合这个标准都可以通用,接口的表现

在于对行为的抽象。 就好比插座,每个厂商生产的插座我们都可以用,这是因为他们

有同一个标准,这里插座就是接口。

接口的格式

格式1:

public interface 接口名
【java】接口的详解[通俗易懂]

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活clion
datagrip dataspell
dotcover dotmemory
dottrace goland
phpstorm pycharm
resharper reshac
rider rubymine
webstorm 全家桶

格式2:

interface  接口名

①多态的实例化用implement关键字

public  interface usb{}//定义一个接口
public  class  computer implements  usb{}//创建一个类实现接口

②接口不能被直接实例化,可以通过多态的形式实现实例化

usb  u =new computer();

③接口中都是抽象方法和常量,不可能有非抽象方法,常量必须被赋值。

常量默认被public  static final

方法默认被public static   abstractl修饰

public final int  num1=10;√
num1=20;×
int num2=10;√
num2=20;×
上面两个正确的写法等价
public  abstract  void method1();√
void  method2();√

 直接int num=10,创建的a是常量

④多态的前提:

  • 有继承或实现关系
  • 有方法的重写,
  • 有父类或父接口引用指向子类或实现类对象

⑤接口的实现类

必须重写接口中的所有方法,不想重写则可以是抽象类(加上abstract)

但是子类继承了该抽象类必须重写接口中的方法。

⑥接口只能被public修饰

接口的使用

service包下

package service;
public interface eatservice {
    void eat();
}

service包下的impl包下

package service.impl;
import service.eatservice;
public class catimpl implements eatservice {
    @override
    public void eat() {
        system.out.println("🐱吃🐟");
    }
}

在controller包下

package controller;
import service.eatservice;
import service.impl.catimpl;
public class catcontroller {
    public static void main(string[] args) {
        eatservice e=new catimpl();
        e.eat();
    }
}
  • 类和类之间是继承关系
  • 接口和接口之间是继承关系
  • 类和接口之间是实现关系(类实现接口)

类只支持单继承(即一个子类只有一个父类),可以实现多个类

public class  a  extends  b implements c,b,d....{}

接口之间可以多重继承。

public interface a implements b,c,d.....{}

接口多重继承的好处

      定义了许多接口,如果一个设备要同时实现那么多接口将是不小的开销,对于同能

同类的可以把他用一个接口继承起来,这样这个接口就要了那些接口的全部功能,我们

使用类只要实现一个就可以了。

接口1

package service;
public interface eatservice {
    void eat();
}

接口2

package service;
public interface playservice {
    void play();
}

接口3

package service;
public interface sleepservice {
    void sleep();
}

总接口:用来继承上面三个接口

package service;
public interface sumservice extends sleepservice,eatservice,playservice {
}

此时原来的类实现只要实现一个总接口即可

旧:

public class catimpl implements eatservice,playservice,sleepservice {
//方法重写
}

新:

public class catimpl implements sumservice {
//方法重写
}

在controller中调用也是简单不少

package controller;
import service.sumservice;
import service.impl.catimpl;
public class catcontroller {
    public static void main(string[] args) {
        sumservice ss=new catimpl();
        ss.eat();
        ss.play();
        ss.sleep();
    }
}

【java】接口的详解[通俗易懂]

 

js555888金沙老品牌的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/141816.html

(0)

相关推荐

  • 如何获取股票的历史数据_历史数据存储方法packagecom.xiaole.stock;importjava.util.arraylist;importjava.util.list;importorg.jsoup.jsoup;importorg.jsoup.nodes.document;importorg.jsoup.nodes.element;importorg.jsoup.select.elements;publicclassge…

    2022年11月15日
  • java的格式输入语句是_java输入输出语句是什么对于经常上机刷题的来说,首先得解决输入输出方法,java的输入输出流在java学习过程的后面部分才会接触,但是我们可以掌握一些简单的,常用的输入输出方法输出流java常用的输出语句有下面三种:system.out.println();//换行打印,输出之后会自动换行system.out.print();//不换行打印system.out.printf();//按格式输出输出示例publiccla…

  • java log4j 路径配置_指定log4j配置文件路径log4j是使用频率很高的java日志组件,一般项目中都会在class根目录创建一个log4j.properties配置文件,spring容器会默认在class根目录中寻找log4j.properties,约定优于配置。但难免存在需要显示指定的情况,这时,我们可以在web.xml中进行如下配置:log4jconfiglocationweb-inf/classes/log/log4j.propert…

  • 【java se基础篇】51装饰流之缓冲流和转换流装饰流也称为处理流 1.缓冲流: 1、提升性能 2、任何处理流底层都是节点流 3、释放外层流,内层流自动释放,手动释放则是从里到外层层释放 1.字节缓冲流 1.bufferedinputstream

  • linux安装java_ubuntu安装javalinux安装java教程

  • java简历与面试「建议收藏」java就业指导  想要成为合格的java程序员或工程师到底需要具备哪些专业技能,面试者在面试之前到底需要准备哪些东西呢?本文陈列的这些内容既可以作为个人简历中的内容,也可以作为面试的时候跟面试官聊的东西,你可以把这些内容写到你的简历中,当然更需要的是你在面试的时候向面试官展示这些专业技能。相信此文对正在寻觅java程序员(java工程师)职位的freshman以及希望成为中高级java开发者的ju

  • 二java基础 集合 多线程 jvm2.1.java基础2.1.1.面向对象和面向过程的区别面向过程:面向过程性能比面向对象高。因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、linux/unix等一般采用面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展。面向对象:面向对象易维护、易复用、易扩展。因为面向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,面.

  • 基于java的学生成绩管理系统毕业论文_javaweb学生管理系统本文采用序列化和反序列化的方式将学生成绩数据保存在student.txt文件中用list集合保存学生对象该程序主要完成了学生成绩的增删改查功能以及按学号或者姓名查找学生成绩的功能还有对成绩的排序功能具体完成如下创建student类并继承serializeablepublicclassstudentimplementsserializable{privatestaticfinallongserialversionuid=55l;privatestring

发表回复

您的电子邮箱地址不会被公开。

联系金沙1005

关注“java架构师必看”公众号

回复4,添加站长微信。

附言:ispacesoft.com网而来。

关注微信
网站地图