美文网首页日常编程小笔记
浅谈接口和抽象类(java)

浅谈接口和抽象类(java)

作者: 阿狸演绎 | 来源:发表于2017-09-10 13:57 被阅读0次

总是有人在学习完接口会感觉,咦?这和抽象类有什么太大区别?用起来好像还不如抽象类.抽像类的限制比他小,定义的东西多(接口:定义抽象方法 抽象类:抽象方法和非抽象方法),为什么非要使用接口.其实想到这个问题很好,说明起码思考了.但是接口和抽象类还是有区别的.

首先:先来看相同点,二者都是抽象的,不能被实例化.

不同点

接口使用interface来定义,使用implements用来实现接口,接口可以多实现.
使用接口必须全部实现接口里面的内容.
接口中只能定义抽象方法,必须由子类去实现
接口里定义的变量只能是公共的静态的常量
接口主要用来抽象功能.
接口是对对象的抽象

public  interface jieko{
        void eat();//接口里的方法
    }

抽象类使用abstract来定义.,抽象类需要被继承(extends),只能单继承
抽象类中可以定义抽象方法和非抽象方法,子类继承后,
可以直接使用非抽象方法。
抽象类中的变量是普通变量
抽象类主要用来抽象类别
抽象是对根源的抽象
抽象类可以有构造方法,接口不能

    abstract class chouxianglei{
        private String name;
        abstract double study();//抽象方法
        void sleep(){//非抽象方法
            System.out.println("睡觉");
        }

    }

如果要是项目比较大的时候抽象类只能单继承,不方便,很多需求达不到,但是接口的多继承为这种事情提供了方便.

简单来说

接口表示的是这个对象能做什么(特指功能),抽象类表示这个对象是什么(本质),抽象类是一种大框架,接口则是一种规范,你使用了就一定要这样....,举个例子:有一个类是房子,房子有颜色,有价钱,还可以住人.还有飞船,也可以住人,这样我们就可以定义一个接口,专门用来住人,如果房子调用了房子就可以住人,飞船调用,飞船就可以住人.但是飞船和房子是两个概念,但是谁调用了接口,谁就可以实现"住人的方法",但是如果是一个类继承了飞船和房子的抽象类,他必定是飞船或者房子的子类,从而具备了相应的属性等.

从这里可以看出,继承是一个 "是不是"的关系,而 接口 实现则是 "有没有"的关系。如果一个类继承了某个抽象类,则子类必定是抽象类的种类,而接口实现则是有没有、具备不具备的关系。但是为我们我们一般使用抽象类是为了代码的复用,而使用接口的动机是为了实现多态性。当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口.

相关文章

  • 浅谈接口和抽象类(java)

    总是有人在学习完接口会感觉,咦?这和抽象类有什么太大区别?用起来好像还不如抽象类.抽像类的限制比他小,定义的东西多...

  • Java基础-抽象类和接口

    抽象类和接口也是 Java 面试中常考的,下面就来总结一下抽象类和接口的相关知识。 抽象类是类,Java 中类是单...

  • java抽象类和接口小记

    Java抽象类和接口小记 Java抽象类和接口实现了java的多态.多态是面向对象程序语言的核心,在项目开发过程中...

  • java abstract

    参考java抽象类和抽象方法Android开发:抽象类(abstract class)和接口(Interface)...

  • 深入理解Java的接口和抽象类

    深入理解Java的接口和抽象类

  • Java 接口知识点

    接口的特性 函数式接口 抽象类和接口区别 Lambda表达式 java常用接口

  • java抽象类和接口

    参考:java抽象类和接口--树上月 总结:1.抽象类在java语言中体现的是继承关系,即"is-a"关系,而接口...

  • Java抽象类和接口类

    Java中接口和抽象类的区别是什么?什么时候用接口?什么时候用抽象类?抽象类和接口存在的意义是什么?能解决哪些编程...

  • 接口类&抽象类

    java的接口类和抽象类的特点 java中抽象类的特点: 抽象类和抽象方法必须用关键字abstract修饰 2.如...

  • Java8以后,抽象类和接口该怎么选?

    本文将对jdk1.8以后的接口和抽象类进行讨论,假定读者已经了解java中接口(interface)和抽象类(ab...

网友评论

    本文标题:浅谈接口和抽象类(java)

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