zoukankan      html  css  js  c++  java
  • [转]接口和抽象类

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

  • 相关阅读:
    eclipse tomcat插件
    eclipse.ini
    iBatis杂记
    oracle 10g express 下载网址
    免费ftp客户端 winscp
    maven web app 发布到Tomcat
    sqlserver获取本月最后一天
    ArrayCollection和ComboBox
    flex框架 Cairngorm
    HDU3420 Bus Fair
  • 原文地址:https://www.cnblogs.com/xcxcxcxc/p/5541169.html
Copyright © 2011-2022 走看看