java中接口和抽象类的区别

原创 2014年07月06日 11:23:20
  1.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。

  2.在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定义数据成员),所有的成员方法都是abstract的。

  3.abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"is-a"关系,interface表示的是"like-a"关系。 

  4.实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。

  5.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。

  6.抽象类中的变量默认是 friendly 型,其值可以在子类中重新定义,也可以重新赋值。 

  7.接口中的方法默认都是 public,abstract 类型的。

  结论

  abstract class 和 interface 是 Java语言中的两种定义抽象类的方式,它们之间有很大的相似性。但是对于它们的选择却又往往反映出对于问题领域中的概 念本质的理解、对于设计意图的反映是否正确、合理,因为它们表现了概念间的不同的关系(虽然都能够实现需求的功能)。这其实也是语言的一种的惯用法,希望读者朋友能够细细体会。


主要不同点:

1.单继承与多继承

2.抽象类可以有自己的实现方法,有非抽象方法,数据变量可以不是public的,接口的方法都是public的,没有自己的实利域,不能自己实现方法,方法都是抽象的,只能有静态数据。

3.设计意图,一个是一种抽象,一个是实现我能干什么的功能。

JAVA中接口和抽象类的区别?

原文:http://blog.csdn.net/sunboard/article/details/3831823 1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实...
  • u010355144
  • u010355144
  • 2015年04月08日 18:04
  • 550

JAVA-抽象类和接口的区别总结

首先.抽象类和接口都很好的提供了一种将实现和接口分离的方法..  一、抽象类 我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的。如果一个类没...
  • oshirdey
  • oshirdey
  • 2014年07月26日 15:07
  • 1450

java中抽象类和接口之间的区别和关系

首先抽象类归根结底还是属于类,对于抽象方法,是只能存在于抽象类中的,我们无法再一个非抽象的类中声明一个抽象方法,其次抽象方法只需要声明,并不需要事先。当我们要写一个抽象类的时候只需要在类的前面声明为a...
  • ysayk
  • ysayk
  • 2016年06月12日 23:08
  • 1192

Java中接口和抽象类的区别与联系

Java中接口和抽象类的区别与联系1. 抽象类: (1).概念:抽象类是对一种事物的抽象,即对类抽。.抽象类是对整个类整体进行抽象,包括属性、行为。Java抽象类和Java接口一...
  • u014225510
  • u014225510
  • 2015年05月10日 14:14
  • 781

java中抽象类和接口的三点区别

一个类可以实现多个接口,但却只能继承最多一个抽象类 抽象类可以包含具体方法;接口的所有方法都是抽象的 抽象类可以声明和使用字段;接口则不能,但可以创建静态的final常量 抽象类中的方法可以是p...
  • sundujing
  • sundujing
  • 2015年11月06日 16:36
  • 1118

Java 抽象类、普通类、接口的区别——值得你一看的干货

【概念】 抽象类、具体类是相对的,并非绝对的。抽象是一种概念性名词,具体是一种可见可触摸的现实对象。概念越小,则其抽象程度就越大,其外延也越大,反之亦然。简单说,比如“人”比“男人”抽象...
  • csdn_aiyang
  • csdn_aiyang
  • 2017年05月04日 16:26
  • 3047

java语言中关于抽象类和接口的区别(面试经常问到,因此总结一下)

写下这篇文章的原因是基本上是在自己面试的时候很多公司都问我们这个问题,但是此前自己回答的都比较模糊,抓不到重点,毫无规律,特此在这总结一下。          先对他们进行说明:           ...
  • u014492098
  • u014492098
  • 2014年12月06日 09:51
  • 1918

JAVA8新特性下的接口和抽象类的异同

Java中,抽象类和接口有相似的地方。下面我们就来细说说接口和抽象类的异同。 首先是相同的地方: 1. 接口和抽象类都能定义方法和属性。 2. 接口和抽象类都是看作是一种特殊的类...
  • wangxin1982314
  • wangxin1982314
  • 2017年04月26日 15:38
  • 662

简单介绍java抽象类和接口的区别

抽象类:在面向语言的概念中,所有的对象都是通过类来描绘的,但是反过来却不是这样,如果一个类中没有足够的信息去描绘一个具体的对象,那么这个类就是抽象类。 接口:不同类的对象对同一行为产生不同的行为结果...
  • u012402177
  • u012402177
  • 2016年02月24日 10:18
  • 612

小鸦-Java8抽象类与接口的区别

前序: 被不少考官问过, 这次想重新整理一下.我们以下面的表格作为参考 原地址: http://www.importnew.com/12399.html (侵删)首先, 我们必须明白, 抽象类是什么...
  • u014041227
  • u014041227
  • 2017年03月28日 00:59
  • 329
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java中接口和抽象类的区别
举报原因:
原因补充:

(最多只允许输入30个字)