zoukankan      html  css  js  c++  java
  • chapter10 内部类-为什么需要内部类?

    为什么需要内部类?

      一般说来,内部类继承自某个类或实现某个接口,内部类的代码操作创造它的外围类的对象。所以可以认为内部类提供了某种进入其外围类的窗口。

      内部类必须要回答的一个问题是:如果只是需要一个对接口得引用,为什么不通过外围类实现那个接口呢?答案是:“如果这能满足需求,那么就应该这样做。”那么内部类实现一个接口与外围类实现这个接口有什么区别呢?答案是:后者不是总能享用到接口带来的方便,有时需要用到接口得实现。所以,使用内部类最吸引人的原因是:每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。

      如果没有内部类提供的,可以继承多个具体的或者抽象的类的能力,一些设计与编程问题就很难解决。从这个角度看,内部类使得多重继承的解决方案变得完整。接口解决了部分问题,而内部类有效地实现了“多重继承”。也就是说,内部类允许继承多个非接口类型(注:类或抽象类)。

      如果不需要解决“多重继承”的问题,那么自然可以用别的方式编码,而不需要使用内部类。但如果使用内部类,还可以获得其他一些特性:

      1)内部类可以有多个实例,每个实例都有自己的状态 信息,并且与其他外围对象的信息相互独立。

      2)在单个外围类中,可以让多个内部类以不同的方式实现同一个接口,或继承同一个类。

      3)创建内部类对象的时刻并不依赖于外围类对象的创建。

      4)内部类并没有令人迷惑的“is-a”关系;它就是一个独立的实体。

    保持耐心,每天进步一点点;持续学习,才能让自己心安。
  • 相关阅读:
    android stagefright awesomeplayer 分析
    stagefright框架(七)-Audio和Video的同步
    stagefright框架(六)-Audio Playback的流程
    Windows Sockets Error Codes
    编译boost (windows msvc14)
    golang windows程序获取管理员权限(UAC ) via gocn
    阿里云容器服务--配置自定义路由服务应对DDOS攻击
    store / cache 系列
    一些项目感悟
    protobuf-3.0.0-beta-2 windows编译 x64/x86
  • 原文地址:https://www.cnblogs.com/dyys/p/10243640.html
Copyright © 2011-2022 走看看