zoukankan      html  css  js  c++  java
  • 接口与抽象类

    抽象类:

      包含抽象方法的类叫做抽象类。如果一个类包含一个或多个抽象方法,该类必须被限定为抽象的。(否则编译器会报错)并不需要所有的方法都是抽象的。

      如果从一个抽象类继承,并想创建该新类的对象,那么就必须为基类中的所有抽象方法提供方法定义。如果不这样做(可以不这样做),那么导出类便也是抽象类,且编译器将会强制我们用abstract关键字来限定这个类。

      创建抽象类和抽象方法非常有用,因为他们能使类的抽象性明确起来,并告诉用户和编译器准备怎么使用他们。抽象类使很有用的重构工具,他们使得我们可以很容易地将公共方法沿着继承层次结构向上移动。

      abstract关键字允许人们在类中创建一个或多个没有任何定义的方法--提供了接口部分,但是没有提供任何相应的具体实现,这些实现是由此类的继承者创建的,且必须覆盖这些接口方法。

    接口:

      Interface关键字产生一个完全抽象的类,他没有提供任何具体实现。他允许创建者确定方法名,参数列表和返回类型,但是没有任何方法体,接口只提供了形式而没有提供任何具体实现。

    一个接口表示:“所有实现了某个特定接口的类看起来都是这样,他们都拥有这个接口的抽象行为”。接口用来建立类与类之间的协议。

      接口不仅仅是一个极度抽象的类,因为他允许人们通过创建一个能够向上转型为多种基类的类型,来实现某种相似于多重继承变种地特性。

      一旦实现了某一个接口,他就变成了一个普通的类。

      无论是否显示地声明,接口都是public的,在接口中被定义的方法也必须是public的;否则他们将只能得到默认的包访问权限,其可访问权限就降低了。

      相对于抽象类,接口可以更大程度的实现完全解耦。

  • 相关阅读:
    Nginx+Keepalived实现站点高可用
    强(strong)、软(soft)、弱(weak)、虚(phantom)引用
    Linux SSH 连接不上
    ExtJs Column 显示文字内容过长 使用Tootip显示全部内容
    史上最清晰的红黑树讲解(上)
    MySQL Cluster 集群
    分析《统计学习方法第2版》PDF+习题部分代码+部分课件讨论
    Case Styles: Camel, Pascal, Snake, and Kebab Case
    为什么EXE不能超过4GB
    But How Do It Know 关于人工智能的思考
  • 原文地址:https://www.cnblogs.com/jhdcjh/p/10674208.html
Copyright © 2011-2022 走看看