`
xtcpcgx
  • 浏览: 13651 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

抽象类和接口的区别

    博客分类:
  • Java
阅读更多
昨天研究了一下抽象类和接口。发现他们两个意义上很相近,但是区别又很大
我们都知道接口里只有方法名,没有方法体。抽象类也是,但是跟接口最大的不同之处在于当程序有必要的时候可以往抽象类里面写方法体,以提供方便(虽然不推荐这么做)。
而且因为Java的单继承性使得,一个类不能从另一个类继承太多的方法。因此这种情况应该使用接口,用接口来定义很多方法,方便类实现这些方法。
当一个类实现了一个接口,那就说明它把接口里的方法都实现了-也就是说类里有接口里的所有的方法,因此占用了很大的资源空间,不管它有没有使用这些方法。
但是当一个类继承抽象类的时候,加入这个类没有调用父类的方法或没有重写这些方法,那这个类就不会实现这些方法,也就是说省了很大的空间。
基于这个特性,出来了一个非常常用的模式-缺省适配器模式。
这些是我的一些了解,希望我了解的错的话多多给我指正。
分享到:
评论
19 楼 yyc112 2010-10-21  
juforg 写道
XTU_xiaoxin 写道
你回去能专心看看书,行不?
跑到这上面来学别人发什么贴?害人?
年轻人,好好学习!别到这上面来凑热闹,专心看帖就行了,明白?

太打击人的积极性了吧

打击么?  不打击吧. 汉字拼错那么多.  别的更不用说了
18 楼 yqfly2008 2010-10-17  
XTU_xiaoxin 写道
你回去能专心看看书,行不?
跑到这上面来学别人发什么贴?害人?
年轻人,好好学习!别到这上面来凑热闹,专心看帖就行了,明白?


难道要一头扎进书堆里?弄个论坛出来就是用来交流的,年轻人
17 楼 Mrpublic 2010-09-02  
ironsabre 写道
抽像类的典型应用是模板模式,可由一个实体方法来管理一些abstract方法的流程。(继承)
接口的典型应用是策略模式,关注的可替换性。(组合)

我觉得你可以再说细一点 帮理解。。呵呵
16 楼 Mrpublic 2010-09-02  
XTU_xiaoxin 写道
你回去能专心看看书,行不?
跑到这上面来学别人发什么贴?害人?
年轻人,好好学习!别到这上面来凑热闹,专心看帖就行了,明白?


???
咱们新手就是需要交流交流 ,光看书有个屁用。。。
15 楼 dyllove98 2010-09-01  
XTU_xiaoxin 写道
你回去能专心看看书,行不?
跑到这上面来学别人发什么贴?害人?
年轻人,好好学习!别到这上面来凑热闹,专心看帖就行了,明白?

...
14 楼 udvs 2010-09-01  
ironsabre 写道
抽像类的典型应用是模板模式,可由一个实体方法来管理一些abstract方法的流程。(继承)
接口的典型应用是策略模式,关注的可替换性。(组合)

理解一样!
13 楼 youngliang 2010-09-01  
接口不一定会消耗什么资源,如果你发现,你实现了一个借口,但是实现之后,这个类是消耗资源的,我觉得,那就需要反思一下,你的接口设计了,
我个人是这个理解的
12 楼 cpdw 2010-08-30  
我总结的是:抽象类是爹,接口是老师
11 楼 huahuashijie888 2010-08-28  
sarstime 写道
huahuashijie888 写道
接口是is a XX,抽象类是like a XX的关系,很好记~~

你确定?

如果很好记,记错了更麻烦。

我日,果然记反了。。谢谢兄台提醒。。
10 楼 cantellow 2010-08-28  
<div class="quote_title">XTU_xiaoxin 写道</div>
<div class="quote_div">你回去能专心看看书,行不?<br>跑到这上面来学别人发什么贴?害人?<br>年轻人,好好学习!别到这上面来凑热闹,专心看帖就行了,明白?</div>
<p>貌似你就很懂抽象类和接口的区别了?</p>
<p>那你可以给我讲讲为什么java限制单一抽象类继承,而C++可以多继承呢?</p>
<p>某些很高深的东西实际上等你研究了很简单,很简单的东西实际上深究你会发现你只是井底之蛙。</p>
<p>我也是年轻人,我只是觉得不要轻易否定别人的观点。</p>
9 楼 juforg 2010-08-28  
XTU_xiaoxin 写道
你回去能专心看看书,行不?
跑到这上面来学别人发什么贴?害人?
年轻人,好好学习!别到这上面来凑热闹,专心看帖就行了,明白?

太打击人的积极性了吧
8 楼 XTU_xiaoxin 2010-08-28  
你回去能专心看看书,行不?
跑到这上面来学别人发什么贴?害人?
年轻人,好好学习!别到这上面来凑热闹,专心看帖就行了,明白?
7 楼 sarstime 2010-08-28  
huahuashijie888 写道
接口是is a XX,抽象类是like a XX的关系,很好记~~

你确定?

如果很好记,记错了更麻烦。
6 楼 mallon 2010-08-28  
抽象类中可以放一些静态的东西
5 楼 tenderuser 2010-08-27  
引用
但是当一个类继承抽象类的时候,假如这个类没有调用父类的方法或没有重写这些方法,那这个类就不会实现这些方法,也就是说省了很大的空间。

这个不太理解  , 期望楼主解释解释  为什么会节省空间?  难道从抽象类继承后,如果不重写这个方法的话 , 子类对象就不会有这个资源么? 奇怪。。。。

4 楼 huahuashijie888 2010-08-27  
接口是is a XX,抽象类是like a XX的关系,很好记~~
3 楼 清晨阳光 2010-08-27  
一个接口,以抽象类实现之(一些空实现和一些必要实现),再继承此抽象类使用。可避免直接实现接口时需要实现全部方法,继承此抽象类使用,只需要覆盖关心的方法即可。
2 楼 xhdwell 2010-08-27  
这个在thinking in java里解释的非常透彻了.
1 楼 ironsabre 2010-08-27  
抽像类的典型应用是模板模式,可由一个实体方法来管理一些abstract方法的流程。(继承)
接口的典型应用是策略模式,关注的可替换性。(组合)

相关推荐

    抽象类和接口 区别分析

    ### 抽象类和接口的区别分析 在面向对象编程中,抽象类与接口都是实现代码复用和提高软件模块化的重要工具。它们各自拥有独特的特性和应用场景,掌握这些概念对于编写高质量、可维护性强的代码至关重要。下面我们将...

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

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

    抽象类和接口区别用法[文].pdf

    抽象类和接口的区别和应用 在软件设计中,抽象类和接口是两个重要的概念,它们都是抽象类型的表现形式,但是它们在实际应用中有着本质的区别。下面,我们将详细讨论抽象类和接口的概念、相同点、不同点和应用场景。...

    C#类、接口、虚方法和抽象方法-抽象类和接口的相同点和区别

    这里我们将详细讨论这些概念以及抽象类与接口之间的相同点和区别。 首先,让我们来看看抽象类(Abstract Class): 1. 抽象方法是只有声明没有实现的方法,可以视为没有方法体的虚方法。例如: ```csharp public ...

    一些资料,抽象类和接口区别

    下面将详细讲解抽象类与接口的区别,以及重载和重写的相关知识。 首先,让我们了解抽象类。抽象类是一种不能实例化的类,它主要用来被其他类继承。抽象类可以包含抽象方法(没有方法体的方法)和非抽象方法(有具体...

    Java中抽象类和接口的区别

    在Java语言中,abstract class和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,...

    抽象类和接口的PPT

    简单介绍了抽象类和接口

    C#中抽象类和接口的区别.txt

    综上所述,虽然抽象类和接口在实现多态方面具有相似的目标,但它们之间存在明显的区别。选择使用哪一种取决于具体的应用场景和个人的设计偏好。理解这些差异有助于更好地设计出健壮、可维护的软件系统。

    详细解析Java中抽象类和接口的区别

    ### 详细解析Java中抽象类和接口的区别 #### 引言 在面向对象编程中,Java作为一种广泛应用的编程语言,提供了多种方式来实现抽象的概念。其中最常用的两种机制是抽象类(abstract class)和接口(interface)。这...

    java抽象类与接口区别

    ### Java抽象类与接口的区别 #### 一、引言 在Java编程中,抽象类(Abstract Class)与接口(Interface)都是实现抽象的关键工具。它们各自有着独特的优势和适用场景,掌握这两者的区别有助于开发者更好地设计系统...

    抽象类和接口的区别抽象类和接口的区别.pdf

    "抽象类和接口的区别" 抽象类和接口是 Java 语言中两种不同的机制,用于实现对象的抽象描述。虽然它们之间存在着一定的相似性,但它们在定义、实现和使用方面存在着很大的区别。 首先,抽象类是一个抽象的概念,...

    JAVA 继承基本类、抽象类、接口区别与联系

    本文将详细介绍Java中的基本类、抽象类以及接口的概念,并分析它们之间的区别和联系。 #### 二、基本类 **定义**:基本类是指具体实现了一定功能的类,它包含了具体的属性和方法。在Java中,所有类都是通过`class`...

    java 抽象类与接口的区别

    理解抽象类与接口的区别并恰当运用,有助于提升代码的可扩展性和可维护性,使得软件设计更加灵活和面向对象。在进行Java编程时,应根据项目需求和设计原则,合理选择抽象类或接口来实现特定功能,以达到最佳的设计...

    抽象类和接口的详细区别和联系

    ### 抽象类和接口的详细区别和联系 在面向对象编程中,抽象类与接口是两种非常重要的概念,它们都是实现多态性的方式之一,但在使用场景、语法特性和设计哲学等方面存在明显的不同。本篇文章将深入探讨这两者的区别...

    抽象类与接口的区别

    ### 抽象类与接口的区别 #### 一、理解抽象类与接口的基本概念 在面向对象编程中,抽象类和接口都是重要的概念,用于描述共有的特性或行为,但它们在实现方式和用途上有所不同。 **抽象类**: - **定义**:抽象类...

    抽象类和接口实验报告.doc

    抽象类和接口实验报告

    JAVA中抽象类与接口的区别

    下面将从多个方面详细介绍抽象类与接口的区别。 ### 一、定义与基本语法 #### 抽象类 抽象类是一种特殊的类,它不能被实例化,只能作为其他类的父类来使用。抽象类中可以包含抽象方法(没有方法体的方法)和具体...

    介绍一下抽象类和接口的异同

    在编程世界中,抽象类和接口是两种非常重要的概念,它们在实现代码的组织和设计模式上发挥着关键作用。本文将深入探讨抽象类与接口的异同,并结合实际应用场景来帮助理解这两种机制。 首先,让我们从定义开始。抽象...

Global site tag (gtag.js) - Google Analytics