`
ronon
  • 浏览: 192752 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

[转]接口和抽象类

 
阅读更多

接口事实上就是将对象间的共有特征方法和"属性"以抽象的形式集合到类中,封闭为一个特定集合,一旦类实现了接口,类就可以支持接口所指定的所有属性和成员。相等同于一个协议,这个协议是为了类与类之间相互更好通信。并类与类之间的交互尽量的使用接口来完成,估计这个时候你会问,我为什么非得要用接口来进行通信,我直接一个实例化不就搞定了,别急,我以前也是这样认为的。呵呵!迪米特法则中的核心思想是这样来描述的:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调 用另一个类的某一个方法的话,可以通过第三者转发这个调用。以此来尽量降低成员的访问权限,这样也能更好的降低类与类之间的耦合程度,类之间的耦合越弱,则越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。
接口的作用:
规则:所含成员:方法,属性,事件,索引;
本身不提供他成员的实现,仅仅知道该接口的类或结构所必须提供的成员;
不能含有常数,字段和运算符,以及构造函数
1.降低无相互关系的类之间的耦合性
(迪米特法则中的核心思想是这样来描述的:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调 用另一个类的某一个方法的话,可以通过第三者转发这个调用
)
//---------------------------
抽象类:
 类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。2)抽象类当中可以存在非抽象的方法,可接口不能且它里面的方法只是一个声名必须用public来修饰没有具体实现的方法。3)抽象类中的成员变量可以被不同的修饰符来修饰,可接口中的成员变量默认的都是静态常量(static fainl)。4)这一点也是最重要的一点本质的一点"抽象类是对象的抽象,然接口是一种行为规范"。
  以上是它们本身的异同,下面再来从实际应用讲讲它们的异同!
  不同之处:
  1、定义
  抽象类表示该类中可能已经有一些方法的具体定义,但是接口就仅仅只能定义各个方法的界面(方法名,参数列表,返回类型),并不关心具体细节。
  1、用法
  1)在继承抽象类时,必须覆盖该类中的每一个抽象方法,而每个已实现的方法必须和抽象类中指定的方法一样,接收相同数目和类型的参数,具有同样的返回值,这一点与接口相同。
  2)当父类已有实际功能的方法时,该方法在子类中可以不必实现,直接引用的方法,子类也可以重写该父类的方法(继承的概念)。
  3)而实现 (implement)一个接口(interface)的时候,是一定要实现接口中所定义的所有方法,而不可遗漏任何一个。
  4)另外,抽象类不能产生对象的,但可以由它的实现类来声明对象。
  有鉴于此,在实现接口时,我们也常写一个抽象类,来实现接口中的某些子类所需的通用方法,接着在编写各个子类时,即可继承该抽象类来使用,省去在每个都要实现通用的方法的困扰

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    java利用接口和抽象类改写求圆的面积和梯形的面积.docx

    ### Java利用接口和抽象类改写求圆的面积和梯形的面积 #### 深入理解Java的接口和抽象类 在Java编程语言中,接口(Interface)和抽象类(Abstract Class)都是用于实现多态性和代码复用的重要概念。它们都无法被...

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

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

    接口与抽象类区别

    那么,什么是抽象类和接口?它们之间有什么区别?下面,我们就来详细地探讨这个问题。 一、抽象类 抽象类是一种特殊的类,它不能被实例化,只能被继承。抽象类的主要特点是: 1. 抽象方法只作声明,而不包含实现...

    Java 接口和抽象类

    在上面的练习中,我们使用抽象类和接口来实现多态性。在 LivingThing 抽象类中,我们定义了一个抽象方法 dance(String dancingStyle),然后在 Human 和 Monkey 中实现了该方法。在 PersonInterface 接口中,我们定义...

    11.java接口和抽象类的区别.zip

    11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别....

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

    通过这些理解,我们可以更好地利用抽象类和接口来设计灵活且可扩展的软件架构。在选择使用抽象类还是接口时,应根据项目需求和设计原则来权衡。例如,如果需要共享部分实现并有继承关系,可以选择抽象类;如果需要多...

    10.java接口和抽象类的相似性.zip

    10.java接口和抽象类的相似性.zip10.java接口和抽象类的相似性.zip10.java接口和抽象类的相似性.zip10.java接口和抽象类的相似性.zip10.java接口和抽象类的相似性.zip10.java接口和抽象类的相似性.zip10.java接口和...

    C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例

    C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例 C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例

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

    4.实现抽象类和接口的类必须实现其中的所有方法。 抽象类中可以有非抽象方法。接口中则不能有实现方法。如果接口或者抽象类的子类不想实现则继续携程一个抽象方法 5.接口中定义的变量默认是public static final ...

    接口和抽象类的区别(面向对象)

    接口与抽象类的区别 抽象方法是必须实现的方法。就象动物都要呼吸。但是鱼用鳃呼吸,猪用肺呼吸。 动物类要有呼吸方法。怎么呼吸就是子类的事了。 现在有很多讨论和建议提倡用interface代替abstract类,两者从...

    接口和抽象类使用详细实例源代码

    抽象(如抽象类和接口)作为契约,使得模块之间的交互基于稳定的抽象,而不是易变的具体实现。 在实际编程中,接口和抽象类的选择通常取决于特定场景的需求。如果需要为一组有共同行为的类提供基本实现,并且这些类...

    java中接口与抽象类的详细分析与比较

    在Java编程语言中,接口(Interface)和抽象类(Abstract Class)都是用于实现多态性的关键概念,它们各自有特定的用途和优缺点。本文将深入探讨这两种概念,帮助你理解它们之间的区别以及如何在实际开发中选择使用...

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

    抽象类和接口实验报告

    Java语言的接口与抽象类

    Java语言的接口与抽象类是面向对象编程中的关键概念,它们在设计模式和代码组织中起着重要作用。这里我们将深入探讨这两个概念,并分析它们的异同。 首先,接口(Interface)是Java中的一种特殊类型,它通过使用`...

    接口和抽象类

    在面向对象编程中,接口和抽象类都是实现多态性和代码复用的重要工具,但它们各有特点,适用于不同的场景。本文旨在深入探讨接口与抽象类的区别,以及如何根据具体需求选择合适的工具。 #### 接口:定义协议的契约 ...

    Java抽象类和接口和继承之间关系

    "Java抽象类和接口和继承之间关系" Java抽象类和接口是两种不同的概念,它们之间存在着继承关系。在Java中,抽象类(abstract class)和接口(interface)都是用来描述对象的行为和状态的,但它们之间有着明显的...

    抽象类和接口的区别

    在面向对象编程中,抽象类和接口是两种非常重要的概念,它们在软件设计和实现过程中发挥着不可替代的作用。本文将深入探讨这两种概念的区别,帮助开发者更好地理解和运用它们。 #### 一、定义 1. **抽象类**:抽象...

    Java抽象类与接口实验报告

    Java抽象类与接口实验报告

    java 抽象类与接口的练习

    在Java编程语言中,抽象类和接口是两种重要的面向对象设计概念,它们允许我们定义规范,供其他类去实现或继承。在这个练习中,我们将深入理解这两种机制,并通过实际的代码示例和注释来加深理解。 首先,让我们讨论...

Global site tag (gtag.js) - Google Analytics