美文网首页
7.Java抽象类和接口,基本类有什么区别

7.Java抽象类和接口,基本类有什么区别

作者: 南城刀 | 来源:发表于2018-03-09 11:48 被阅读49次
问题:Java抽象类和接口,基本类有什么区别?
抽象

概念:使用了关键字 abstract 声明的类叫做抽象类。如果一个类里包含了一个或多个抽象方法,类就必须指定(abstract)抽象。“抽象方法”属于一种不完整的方法,只含有一个声明,没有方法主体。

抽象类和具体类是相对的,并非是绝对的。抽象是一种概念性名词,具体是一种可见可触摸的现实对象。概念越小,则其抽象程度就越大,反之亦然。简单说,比如“人”比“男人”抽象一点,而“生物”又比人更抽象一点,“物质”又比“生物”更抽象。

抽象的概念是由具体概念依其“共性”而产生的,把具体概念的诸多个性排出,几钟描述其共性,就会产生一个抽象的概念。抽象思维,是人类思维达到高级阶段产生的一种能力,例如,当小孩子思维上不成熟时,它们只能掌握具体概念,它们学习代词“你、我、他”时往往遇到困难,因此代词具有较高的抽象性。
总之,抽象概念的外延大,内涵小,具体概念的外延小,内涵大。

由于从某种角度讲,接口是一种特殊的抽象类,它们之间渊源颇深,有很大的相似之处。所以总的说,类是对象的模板,抽象类和接口是具体类的模板。

(1)抽象类和普通类

a).普通类可以实例化调用;抽象类不能被实例化,因为它是存在于一种概念而不是具体。
b).普通类和抽象类都可以被继承,但是抽象类被继承后子类必须重写继承的方法,除非自己本身也是抽象类。

(2)抽象类和接口

接口是动作的抽象,抽象类是对本质的抽象
a).抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……)它们抽象的是人。说明,它们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它。所以,在高级语言上,一个类只能继承一个类(抽象类),但是可以实现多个接口。(吃饭接口、走路接口)。

b).使用
①.抽象类 和接口都是用来抽象具体对象的,但是接口的抽象级别最高
②抽象类可以由具体的方法,变量,接口没有具体的方法,可以由变量(变量默认是 public static final)
③.抽象类主要用来抽象类别,接口主要用来抽象功能
④.抽象类中,且不包含任何实现,派生类必须覆盖它们。接口中所有方法都必须是未实现的。
⑤.接口是设计的结果,抽象类是重构的结果。

c).使用方向:当你关注一个事物本质的时候,用抽象类;当你关注一个操作的时候,用接口

(参考博客http://blog.csdn.net/csdn_aiyang/article/details/71171886

相关文章

  • 7.Java抽象类和接口,基本类有什么区别

    问题:Java抽象类和接口,基本类有什么区别? 抽象 概念:使用了关键字 abstract 声明的类叫做抽象类。如...

  • 接口和抽象类的区别

    接口和抽象类有什么区别 你选择使用接口和抽象类的依据是什么? 接口和抽象类的概念不一样。接口是对动作的抽象,抽象类...

  • 2018-07-19 java基础(一)

    1.abstract class 和interface 有什么区别? 抽象类可以有构造方法 接口不行 抽象类可以有...

  • Kotlin 零基础学习 接口和抽象类

    接口:接口就是暴露一种物体与另外一种物体沟通的方法 抽象类 接口 这么看接口和抽象类没什么区别,抽象类能干的接口也...

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

    程序员面试最容易被问到的题,你有没有被击中过 接口和抽象类有什么区别? ①抽象类和接口都不能直接实例化,如果要实例...

  • Lession09抽象类和接口

    抽象类 继承练习 接口 继承基类并实现接口

  • 2018面试宝典

    1.抽象类(abstract class)和接口(interface)有什么区别? 答:相同点:都不能被实例...

  • 2018-06-17 Java抽象类与接口的区别

    很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们...

  • Java面向对象

    Java和iOS的面向对象大体上没有什么区别,有几点需要注意: 抽象类 接口类 多继承 重载 对象 接口 包

  • 接口与抽象类的区别

    抽象类与接口有什么区别: 相同点: 都不能实例化对象 不同: 1.使用interface 抽象类用abstract...

网友评论

      本文标题:7.Java抽象类和接口,基本类有什么区别

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