`
Groovy
  • 浏览: 895 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

两对父子类的协作问题

阅读更多
现在有
类A
类B extends类A
类X 含有一个protected的声明为A的变量a
类Y extends类X, 此类中把a实例化为B的实例
现在我在类X中调用类A的业务逻辑, 没有问题
而在类Y中使用B的逻辑, 每次调用都要把a显示的转化为B类型才能用
这样好像比较麻烦有什么好办法没有呢?
分享到:
评论
3 楼 movingboy 2007-06-27  
最简单的办法:
在Y里面声明一个类型为B的变量并为它赋值,同时把该值赋值给X中声明的那个类型为A的变量。要使用公用的操作就调用后一个变量的相应方法,要使用类型B才有的操作就调用前一个变量
更好的办法是面向接口编程:把类A的公用操作抽象为接口A,把类B的特殊操作抽象为接口B......
2 楼 Groovy 2007-06-27  
顶一下,还是没想出更好的办法

Groovy 写道
javastudy 写道
直接把a声明为B不就行了吗


其实还有类C,D extends A
所以把里面共同的逻辑都写在了A里面
而B,C,D里面都有自己逻辑
1 楼 Groovy 2007-06-26  
javastudy 写道
直接把a声明为B不就行了吗


其实还有类C,D extends A
所以把里面共同的逻辑都写在了A里面
而B,C,D里面都有自己逻辑

相关推荐

    父子进程,createprocess

    在编写代码时,要特别注意同步问题,以避免数据竞争和死锁,确保父子进程的正确协作。 总结来说,"父子进程,createprocess" 是关于操作系统进程管理和并发执行的概念,其中`CreateProcess` API是Windows系统创建新...

    UNIX下C语言实现父子进程通信

    1. **创建管道**:首先,我们调用了两次`pipe`函数来创建两对管道,`fd1`用于父进程向子进程发送数据,`fd2`用于子进程向父进程发送数据。 2. **创建子进程**:通过`fork`函数创建子进程,如果`fork`成功,那么将...

    qt使用QProcess实现父子进程通信,适用linux平台

    本篇文章将深入探讨如何在Linux环境下,使用Qt的QProcess类实现父子进程间的通信。 首先,QProcess是Qt库中的一个核心组件,它允许我们创建、管理和与外部进程进行交互。在Linux系统中,每个运行的程序都是一个独立...

    简单的maven父子依赖的sample

    这样,当构建`module2`时,Maven会首先构建`module1`,然后将`module1`的编译结果引入到`module2`的类路径中。 总结来说,“简单的maven父子依赖的sample”主要展示了如何利用Maven的多模块特性来组织和管理项目。...

    ios-父子控制器.zip

    在这个"ios-父子控制器.zip"文件中,我们可以看到开发者修复了一个关于父子控制器交互的问题,特别是针对第一个控制器(Controller One)文字放大的bug。 1. **导航控制器(UINavigationController)**: - 导航...

    Angular父子组件以及组件之间通讯 @Input @Ouput @ViewChild

    它们可以独立工作,但更常见的是,它们需要相互协作来实现复杂的业务逻辑和用户交互。在这个场景下,父子组件间的通信尤为重要,而`@Input()`, `@Output()` 和 `@ViewChild()` 这三个装饰器就是Angular提供的关键...

    软件学院操作系统第二次上机

    1实现并发的父子进程合作将整数 X 的值从 1 加到 10 的功 能。它们通过管道相互将计算结果发给对方。 2设有二元函数 f(x,y) = f(x) + f(y) 其中: f(x) = f(x-1) * x (x >1) f(x)=1 (x=1) f(y) = f(y-1) + f(y-2) (y...

    父子工程+无侵入swagger+hutool工具文件上传

    这种结构有助于代码组织,便于团队协作和代码复用。在Spring Boot项目中,父工程通常包含共通的配置、依赖管理和版本控制,而子工程则专注于具体的功能实现。通过Maven或Gradle等构建工具,可以方便地管理父子工程...

    大班段“上阵父子兵”亲子军事拓展活动方案.pdf

    上阵父子兵,中国我最行”,强调了团结协作和勇往直前的精神。 活动地点未在描述中明确,但活动对象是大班全体幼儿及其父亲。准备工作包括交通、通讯设备、活动通知的发放以及安全事项的沟通。家长被鼓励支持孩子...

    OpenStack开源软件开发者协作网络分析.docx

    研究者基于Git提交数据中的父子哈希码关系构建了代码协作修订网络,这种网络反映了开发者的贡献行为和代码之间的依赖关系。通过分析这个网络的结构,他们发现OpenStack的开发呈现出明显的网络型系统特征,存在一个...

    SpringPro_springdemo主要是父子模块_源码

    在Spring框架中,模块化设计是提升代码组织和可维护性的重要手段。SpringPro_springdemo...对于大型企业级应用,这种模块化的开发模式是不可或缺的,它能够提高开发效率,降低维护成本,同时也为团队协作提供了便利。

    gradle多模块开发

    在多模块项目中,Gradle支持传递性依赖,这意味着如果你在一个模块中声明了对某个库的依赖,其他依赖这个模块的模块将自动获得这个依赖,无需再次声明。 Spring框架常与Gradle结合使用,特别是在实现Model-View-...

    多线程并发同步(爸爸妈妈苹果橘子问题,有界面)

    这个主题通过一个生动的“爸爸妈妈苹果橘子问题”来解释,这是一个经典的多线程同步问题,有助于理解线程间如何协作共享资源。在这个场景中,爸爸负责放入苹果,妈妈负责放入橘子,而儿子负责吃苹果,女儿负责吃橘子...

    管道机制实现进程间的通信

    在现代操作系统中,进程间通信(IPC)是一项非常重要的技术,它允许不同进程之间进行数据交换和同步操作,从而实现复杂任务的分解与协作。其中,管道机制作为一种最基本的进程间通信方式,在Linux和其他类Unix系统中...

    Vue组件通信中非父子组件传值知识点总结

    在Vue.js框架中,组件通信是一项关键能力,它允许组件之间相互协作,构建复杂的用户界面。在组件通信中,常见的有父子组件之间的通信,而本文将重点探讨非父子组件之间的值传递,即如何在没有直接关系的组件之间共享...

    全国初中数学赛课一等奖从问题到方程说课PPT学习教案.pptx

    7. **练习与巩固**:通过一系列问题,如教师年龄问题、父子年龄关系、排球比赛得分问题等,让学生运用所学知识建立方程,巩固对从问题到方程转化的理解。 8. **教学评价**:教学评价不仅关注学生能否正确建立方程,...

    IO进程线程Day5 文件夹拷贝 从文件中读取数据到内存,从内存写入到文件 父子进程发送消息

    在多进程编程中,父子进程间的通信是实现协作和数据交换的重要手段。这可以通过多种方式实现,如管道(pipe)、共享内存、信号量、消息队列等。在Unix/Linux系统中,父子进程通常使用管道进行简单通信,通过创建一个...

    Vue2.0学习之详解Vue 组件及父子组件通信

    通过组件化,我们可以把一个大项目分解成许多小而明确的部分,每个部分都有自己的职责,从而降低了代码的复杂性,提高了团队协作的效率。而父子组件间的通信则确保了组件间的数据流动和协同工作,使得整体应用的逻辑...

    易语言源码易语言匿名管道类模块源码.rar

    在Windows系统中,匿名管道通常由两个内核对象——一个读端口和一个写端口组成,它们共享同一内存区域,数据从写端口写入,可以从读端口读出。在易语言中实现匿名管道,需要掌握以下几个核心概念: 1. **创建管道**...

Global site tag (gtag.js) - Google Analytics