美文网首页java
Java中的接口和抽象类。

Java中的接口和抽象类。

作者: 橘子香蕉我爱吃 | 来源:发表于2018-05-12 10:53 被阅读12次

接上篇。

Java中的继承和多态

Animals(动物)类在现实生活中找不出这样的一个实例,没有一个叫动物的动物。他的子类,譬如像狗,鸟,是具体的一个实例,但是动物类只是一个抽象的概念。一个认知上的抽象。那这样的类就为抽象类。

那将Animals类 设置为抽象类,规定动物的基本属性,基本方法,抽象方法,那继承他的子类就必须实现父类的抽象方法,若不实现,那继承的这个类也必须设置为抽象类。

抽象类中可以有构造函数,属性的权限可以为private,public, protected.,含有抽象方法的类必须声明为抽象类。

抽象函数在抽象类中只是声明,具体实现交给子类。

eg

在上面的例子上继续改造,将Animals中的eat()方法设置为抽象函数。在子类中去实现它。

子类

接口

接口是一组规范,是一个标准。它不表示事务,接口是给类用的。

接口作用。  1:一种规范。

                       2:解耦合,降低耦合度。

接口的现实举例,比如 人要遵守法律。。人就是一个类,法律就是一个接口。

类可以实现多个接口,这就相当于人要遵守多个规章制度。

接口之间可以多继承,这就相当于所有的法律都是宪法之下的。

比如,上面的例子,我想要有飞的这个动作。那我不能在Animals中添加飞这个动作,要是这样的话,那继承他的子类都有飞这个动作,那继承它的Dog类也就有飞的动作,这样的逻辑违背了现实逻辑,是不成立的,那我也可以在每个类中单加这个动作,也能实现,但是接口还有一个功能就是降低耦合度,这样做没有降低耦合。为了达到这个目的,那我就把飞这个动作做成几个接口,那个类需要飞这个动作只需要实现它就行。

接口不能实例化对象,但是可以创建接口引用指向实现这个接口的类的实例化对象。

接口表示规范,所以它里面的属性都是public static final 

                                方法都是abstract。

                            没有构造函数。

接口是一个特殊的抽象类。

eg:

定义一个飞的接口

bird实现Fly接口

一个类可以实现多个接口..

在上面的例子上在添加一个下蛋接口.

bird实现这个接口

接口支持多继承,和类继承基本差不多。

接口更多的有点偏一种动作。偏行为,而类更多的是特征,

相关文章

  • Java基础-抽象类和接口

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

  • java抽象类和接口小记

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

  • 第18条:接口优于抽象类

    java中可以用来定义允许多个实现的类型有两种:接口和抽象类。 接口和抽象类的区别: 1,抽象类中可以存在某些方法...

  • Java抽象类和接口类

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

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

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

  • 接口类&抽象类

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

  • scala的Trait

    Trait基础 scala 中的Trait和Java中的接口(interface)极其类似 接口是彻底的抽象类,所...

  • java中级开发必知

    (一)Java 1.接口和抽象类的区别 ①抽象类里可以有构造方法,而接口内不能有构造方法。 ②抽象类中可以有普通成...

  • 023:接口和抽象类有什么区别?

    参考答案 在Java中可以用接口和抽象类来定义允许有多个实现的类型;不过,接口和抽象类有两个主要的不同: 抽象类允...

  • 2019Java工程师面试题汇总,全会的话月薪至少3W+

    Java基础知识 Java中==和equals和hashCode的区别int与integer的区别抽象类的意义接口...

网友评论

    本文标题:Java中的接口和抽象类。

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