java三角形创建子类_如何创建子类,以便参数属于Java中的子类类型
我有抽象的父类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中的子类类型相关推荐
- java如何添加进程_如何创建一个进程,如何进程调用进程
java一般用线程就够了,多进程优势在于每个进程互不干扰,劣势在于太耗费内存,任何事情都不是绝对的,在编写Java程序时,有时候需要在Java程序中执行另外一个程序. 1.启动程序 Java提供了两种 ...
- discord怎么创建账号_如何创建,设置和管理Discord服务器
discord怎么创建账号 Discord is a quickly growing text and voice chat application, aimed at gamers in parti ...
- java byte 判断相等_转发收藏 | 史上最全Java面试题+面试网站推荐!(含答案)
今天要谈的主题是关于求职,求职是在每个技术人员的生涯中都要经历多次.对于我们大部分人而言,在进入自己心仪的公司之前少不了准备工作,有一份全面细致面试题将帮助我们减少许多麻烦. 相关概念 面向对象的三个 ...
- java 文本工具类_干货:排名前16的Java工具类
原标题:干货:排名前16的Java工具类 作者丨Java技术栈 https://www.jianshu.com/p/9e937d178203 在Java中,工具类定义了一组公共方法,这篇文章将介绍Ja ...
- java写入单个字符_将2个字符写入单个Java char
java写入单个字符 这是创建超低延迟的Chronicle FIX-Engine时使用的另一个好技巧. 在从字节流中读取数据时,如果可能的话,将数据存储在char而不是将其读取到String效率更高. ...
- java异常断点数组_使用IDEA异常断点来定位java.lang.ArrayStoreException的问题
前言 最近对 base-spring-boot项目进行了升级.在将其用于应用开发中时遇到java.lang.ArrayStoreException的异常导致程序无法启动.平常开发过程中面对这种描述不够 ...
- java栈和队列_栈和队列的面试题Java
栈和队列: 面试的时候,栈和队列经常会成对出现来考察.本文包含栈和队列的如下考试内容: (1)栈的创建 (2)队列的创建 (3)两个栈实现一个队列 (4)两个队列实现一个栈 (5)设计含最小函数min ...
- java职业发展路线图_从程序员到CTO的Java技术路线图 JAVA职业规划 JAVA职业发展路线图 系统后台框架图、前端工程师技能图 B2C电子商务基础系统架构解析...
http://zz563143188.iteye.com/blog/1877266在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样 ...
- java开发工具排名_干货:排名前16的Java工具类
在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...
- java局域网聊天代码_简单的局域网聊天程序(java版本的)
局域网聊天程序,首先我已经默认你的电脑已经配置好的java开发的一些环境,所需代码有两个java的源代码,他们分别是1:Server_Test.java-------2:Socket_Test.jav ...
最新文章
- java generate()_Java IntStream generate()用法及代码示例
- SQL自动流水号函数
- python函数参数那些事,关键字参数与位置参数
- JavaFX官方教程(六)之带有JavaFX CSS的花式表单
- ret2shellcdoe
- ajax以base64上传图片到django
- winrar4.0 注册码
- Photoshop之渐变工具使用
- 无线路由器的五种工作模式
- 浓缩书应用 Blinkist - 令人惊艳的商业策略
- T32 load elf
- 基于Springboot和VUE的聊天项目,仿PC端微信
- 蒸馏论文三(Similarity-Preserving)
- vmware设置虚拟机静态ip
- 人工智能导论(2)——启发式算法(八数码问题)
- ios 项目开发中总结
- 基于坡度理论的点云滤波方法(二)
- 隐藏微信小程序左上角的返回或home按钮 wx.hideHomeButton
- 挡板门在湿式烟气脱硫系统中是怎样的存在?
- 用8266学习单片机-6-八段数码管显示数字?时间?金钱?闹钟?从一位八段数码管到四位-网络同步时钟
热门文章
- 用户自定义协议client/server代码示例
- GPU端到端目标检测YOLOV3全过程(下)
- 基于ARM Cortex-M的SoC存储体系结构和实战
- Python神经网络集成技术Guide指南
- 自监督学习(Self-Supervised Learning)多篇论文解读(上)
- 【laravel7.x中文文档】Redis
- Django 视图URLconf3.1
- Django设计模型1.2
- Multiple substitutions specified in non-positional format; did you mean to add the formatted=”false”
- JSONObject 和 JSONArray 获取value 的方法