美文网首页互联网科技
java基础之--接口

java基础之--接口

作者: xml_ | 来源:发表于2019-05-07 16:23 被阅读16次

正文

JAVA是只支持单继承的,但现实中存在很多多重继承现象,比如“人是一种可爱的生物”,人可以从“可爱的生物”这个类继承,“人是一种可以思考的动物”,人又从“会思考的动物”这个类继承。这样人可以分别从 “可爱的生物”、“会思考的动物” 这两个类继承,但由于JAVA只支持单继承,因此人不可以同时继承这两个类。为了实现这种现象,就出现了接口,接口可以实现多继承。

什么是接口?

  • 接口是抽象方法和常量值的定义的集合
  • 接口实际上是特殊的抽象类,它只包含常量和方法的定义,而没有变量和方法的实现

接口举例

package com.mlin;

interface  SoulPer {
    
    public static final int i = 0;//常量的定义
    
    //方法的定义
    public void call();
    public void run();

}

接口的特性

  • 接口可以多重实现
  • 接口可以继承其他接口,并添加属性和方法
  • 接口中声明的属性默认是public static final的,并且也只能是public static final
  • 接口中定义的方法为抽象方法,只能是public的。

在接口中定义常量,有时候是这样写int i = 0;,那是因为接口中声明的属性默认是public static final的,public static final可省略不写。同理,接口中声明的方法都是抽象的,所以可以省略abstract关键字,写成public void call();注意:在接口里面声明的抽象方法默认是“public(公共的)”的,也只能是“public(公共的)”,之所以要这样声明是为了修正C++里面多重继承的时候容易出现问题的地方,C++的多继承容易出现问题,问题在于多继承的多个父类之间如果他们有相同的成员变量的时候,这个引用起来会相当地麻烦,并且运行的时候会产生各种各样的问题。JAVA为了修正这个问题,把接口里面所有的成员变量全都改成static final,成员变量是static类型,那么这个成员变量就是属于整个类里面的,而不是专属于某个对象。对于多重继承来说,在一个子类对象里面实际上包含有多个父类对象,而对于单继承来说,子类对象里面就只有一个父类对象。多继承子类对象就有多个父类对象,而这些父类对象之间可能又会存在有重复的成员变量,这就非常容易出现问题,因此在JAVA里面避免了这种问题的出现,采用了接口这种方式来实现多继承。作为接口来说,一个类可以从接口继承,接口里面的成员变量不专属于某个对象,都是静态的成员变量,是属于整个类的,因此一个类去实现多个接口也是无所谓的,不会存在对象之间互相冲突的问题。实现多个接口,也就实现了多重继承,而且又避免了多重继承容易出现问题的地方,这就是用接口实现多重继承的好处。

总结

接口和接口之间可以相互继承,类和类之间可以相互继承,类和接口之间,只能是类来实现接口

原创作者:凌小样
作品链接:https://www.jianshu.com/p/a4820eefa075
【原创不易,转载请注明出处,感谢理解】
一位爱生活,爱创作,爱分享,爱自己的90后女程序员一枚,记录工作中的点点滴滴,一起学习,共同进步,期待能和优秀的您交上朋友

相关文章

  • java基础概念

    java_basic 介绍 java基础 三大特性之—封装 三大特性之—继承 三大特性之—多态 抽象 接口 深拷贝...

  • JAVA基础之接口

    关于接口(Interface)的定义,在JAVA中是一个抽象类型,一般一个类通过继承接口来继承接口中的方法。 Ja...

  • java基础之--接口

    正文 JAVA是只支持单继承的,但现实中存在很多多重继承现象,比如“人是一种可爱的生物”,人可以从“可爱的生物”这...

  • 面试题汇总

    1.Java基础面试问题 Java基础之基础问题 Java基础之面向对象 Java基础之数据结构 Java基础之I...

  • [翻译中]JAVA 集合接口介绍

    Java 集合接口源于两个最基础的接口 java.util.Collection 和 java.util.Map ...

  • java基础:ArrayList — 源码分析

    其他更多java基础文章:java基础学习(目录) 学习资料ArrayList集合实现RandomAccess接口...

  • Android基础之Java接口

    【免费】全网独家:这是一份非常值得珍藏的Android知识体系!!! 一、接口(interface)1.1 初识接...

  • Java基础之Iterable接口

    说明: Iterable接口是Java集合框架的顶级接口,实现此接口使集合对象可以通过迭代器遍历自身元素。 源码:...

  • JAVA基础-集合

    JAVA基础-集合 1.概述 JAVA容器分为两大类:Collection接口的子接口包括:List接口和Set接...

  • Java基础知识之接口和抽象类的区别

    Java基础知识之接口和抽象类的区别 1.接口   接口是抽象方法的集合,一个接口只有方法的形状而没有方法的具体实...

网友评论

    本文标题:java基础之--接口

    本文链接:https://www.haomeiwen.com/subject/iphroqtx.html