我有抽象的父类Animal:

public abstract class Animal

{

public abstract T copyAnimal(T animal);

}

然后我想创建一个子类Duck但是要覆盖copyAnimal我想使用Duck作为参数,这样:

public class Duck extends Animal

{

@Override

public Duck copyAnimal(Duck duck)

{

return copyOfDuck;

}

}

这当然给了我一个编译器错误,说明该方法没有被覆盖.这就是说我怎么能调整这个代码,这样我就不必将Animal传递给copyAnimal()方法来保存转换等等,因为它看起来很丑陋,需要额外的运行时检查.或者甚至可能吗?如果没有,那么最优雅的解决方案是什么?

解决方法:

public abstract class Animal>

{

public abstract A copyAnimal(A animal);

}

然后:

public class Duck extends Animal

请注意,您不能将其限制为“自我”类型(例如,它可能是Duck extends Animal< Pig>);你只需要声明你想要声明的类.

标签:java,polymorphism

来源: https://codeday.me/bug/20190731/1587670.html

java三角形创建子类_如何创建子类,以便参数属于Java中的子类类型相关推荐

  1. java如何添加进程_如何创建一个进程,如何进程调用进程

    java一般用线程就够了,多进程优势在于每个进程互不干扰,劣势在于太耗费内存,任何事情都不是绝对的,在编写Java程序时,有时候需要在Java程序中执行另外一个程序. 1.启动程序 Java提供了两种 ...

  2. discord怎么创建账号_如何创建,设置和管理Discord服务器

    discord怎么创建账号 Discord is a quickly growing text and voice chat application, aimed at gamers in parti ...

  3. java byte 判断相等_转发收藏 | 史上最全Java面试题+面试网站推荐!(含答案)

    今天要谈的主题是关于求职,求职是在每个技术人员的生涯中都要经历多次.对于我们大部分人而言,在进入自己心仪的公司之前少不了准备工作,有一份全面细致面试题将帮助我们减少许多麻烦. 相关概念 面向对象的三个 ...

  4. java 文本工具类_干货:排名前16的Java工具类

    原标题:干货:排名前16的Java工具类 作者丨Java技术栈 https://www.jianshu.com/p/9e937d178203 在Java中,工具类定义了一组公共方法,这篇文章将介绍Ja ...

  5. java写入单个字符_将2个字符写入单个Java char

    java写入单个字符 这是创建超低延迟的Chronicle FIX-Engine时使用的另一个好技巧. 在从字节流中读取数据时,如果可能的话,将数据存储在char而不是将其读取到String效率更高. ...

  6. java异常断点数组_使用IDEA异常断点来定位java.lang.ArrayStoreException的问题

    前言 最近对 base-spring-boot项目进行了升级.在将其用于应用开发中时遇到java.lang.ArrayStoreException的异常导致程序无法启动.平常开发过程中面对这种描述不够 ...

  7. java栈和队列_栈和队列的面试题Java

    栈和队列: 面试的时候,栈和队列经常会成对出现来考察.本文包含栈和队列的如下考试内容: (1)栈的创建 (2)队列的创建 (3)两个栈实现一个队列 (4)两个队列实现一个栈 (5)设计含最小函数min ...

  8. java职业发展路线图_从程序员到CTO的Java技术路线图 JAVA职业规划 JAVA职业发展路线图 系统后台框架图、前端工程师技能图 B2C电子商务基础系统架构解析...

    http://zz563143188.iteye.com/blog/1877266在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样 ...

  9. java开发工具排名_干货:排名前16的Java工具类

    在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...

  10. java局域网聊天代码_简单的局域网聊天程序(java版本的)

    局域网聊天程序,首先我已经默认你的电脑已经配置好的java开发的一些环境,所需代码有两个java的源代码,他们分别是1:Server_Test.java-------2:Socket_Test.jav ...

最新文章

  1. java generate()_Java IntStream generate()用法及代码示例
  2. SQL自动流水号函数
  3. python函数参数那些事,关键字参数与位置参数
  4. JavaFX官方教程(六)之带有JavaFX CSS的花式表单
  5. ret2shellcdoe
  6. ajax以base64上传图片到django
  7. winrar4.0 注册码
  8. Photoshop之渐变工具使用
  9. 无线路由器的五种工作模式
  10. 浓缩书应用 Blinkist - 令人惊艳的商业策略
  11. T32 load elf
  12. 基于Springboot和VUE的聊天项目,仿PC端微信
  13. 蒸馏论文三(Similarity-Preserving)
  14. vmware设置虚拟机静态ip
  15. 人工智能导论(2)——启发式算法(八数码问题)
  16. ios 项目开发中总结
  17. 基于坡度理论的点云滤波方法(二)
  18. 隐藏微信小程序左上角的返回或home按钮 wx.hideHomeButton
  19. 挡板门在湿式烟气脱硫系统中是怎样的存在?
  20. 用8266学习单片机-6-八段数码管显示数字?时间?金钱?闹钟?从一位八段数码管到四位-网络同步时钟

热门文章

  1. 用户自定义协议client/server代码示例
  2. GPU端到端目标检测YOLOV3全过程(下)
  3. 基于ARM Cortex-M的SoC存储体系结构和实战
  4. Python神经网络集成技术Guide指南
  5. 自监督学习(Self-Supervised Learning)多篇论文解读(上)
  6. 【laravel7.x中文文档】Redis
  7. Django 视图URLconf3.1
  8. Django设计模型1.2
  9. Multiple substitutions specified in non-positional format; did you mean to add the formatted=”false”
  10. JSONObject 和 JSONArray 获取value 的方法