我已经阅读了很多有关泛型的文章,但是在使用Java实现简单的层次结构方面仍然存在一些基本问题.目的是定义一个抽象方法,该方法将比较同一类的两个对象,如果对象来自不同的类,则应返回false.例:

我们定义抽象类Sound

abstract class Sound{

public boolean check(Sound d){return false;};

}

一些扩展Sound的类和从其扩展的另一个抽象类,例如Alarm

abstract class Alarm extends Sound{

@Override

public boolean check(Alarm d){//Do something and return boolean};

}

还有更多的扩展类.

一种简单的解决方案是按所示方法定义该方法,它将起作用.但是,我认为有一种更好的方法来强制执行层次结构,因此Sound类定义该方法仅应与相同类的参数一起使用.

我尝试过的泛型:

abstract class Sound{

public boolean check(T d){return false;};

}

abstract class Alarm extends Sound{

@Override

public boolean check(T d){//Do something and return boolean};

}

要么

abstract class Alarm extends Sound{

@Override

public boolean check(Alarm d){//check and return boolean};

}

Java抱怨,因为对于编译器,我没有重写Alarm中的check方法.

有什么线索可能会丢失吗?

java 抽象泛型_java-使用泛型定义抽象方法相关推荐

  1. java private 接口_java接口中 定义 private 私有方法

    在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开 ...

  2. java中什么时候不能用泛型_java中泛型的正确使用姿势

    image.png 泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用.利用好泛型,在系统架构中是一把利器. 泛型类 先看一个例子,restful架构中,需要定义api接口返回 ...

  3. java之泛型_java之泛型

    什么是泛型? 泛型是JDK1.5新加入的,解决数据类型的安全性问题,其主要原理是在类声明时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型.这样在类声明或实例化时只要指定好需要的具体 ...

  4. java支持泛型_Java自学-泛型 支持泛型的类

    Java 如何设计支持泛型的类 步骤 1 : 不支持泛型的Stack 以Stack栈为例子,如果不使用泛型 当需要一个只能放Hero的栈的时候,就需要设计一个HeroStack 当需要一个只能放Ite ...

  5. java 文件通配符_Java中泛型通配符的使用方法示例

    本文实例讲述了Java中泛型通配符的使用方法.分享给大家供大家参考,具体如下: 一 点睛 引入通配符可以在泛型实例化时更加灵活地控制,也可以在方法中控制方法的参数. 语法如下: 泛型类名 extend ...

  6. java 泛型方法 实例化_Java让泛型实例化的方法

    泛型对象可以实例化吗? 不可以,T t=new T()是不可以的,编译器会报错.由于泛型擦除,编译器在编译时无法确定泛型所对应的真实类型 解决方法 使用反射新建实例 Type superclass = ...

  7. java interface泛型_java – 使用泛型和接口实现组合

    我正在努力实现以下目标: 我的类X有一个通用的Y.然而,这个泛型Y需要访问X的资源,我想通过接口来处理它,以便允许其他人继承任意选择的类. 然而,我目前的方法会产生一系列泛型: public inte ...

  8. java 通配符 泛型_java中泛型之类型通配符(?)

    实体类 package cn.xy.model; /** * 生物类 * @author xy * */ public class Living { private String name; publ ...

  9. java 类型通配符_java中泛型之类型通配符(?)

    实体类 package cn.xy.model; /** * 生物类 * @author xy * */ public class Living { private String name; publ ...

  10. hashmap 泛型_Java 基础 - 泛型

    背景 在没有泛型前,一旦把一个对象丢进集合中,集合就会忘记对象的类型,把所有的对象都当成 Object 类型处理.当程序从集合中取出对象后,就需要进行强制类型转换,这种转换很容易引起 ClassCas ...

最新文章

  1. 区块链技术未来可能用于哪些方面?
  2. linux 调用栈打印
  3. Silverlight C# 游戏开发:方向键的组合,八方向实现
  4. 2016全国大学生计算机设计大赛,2016年“第9届中国大学生计算机设计大赛”闭幕...
  5. Mybatis的@Param注解作用
  6. dijkstra算法matlab程序_Dijkstra算法例子
  7. MiniDao支持ID自增主键策略,使用讲解
  8. HTMLParser使用举例
  9. 轻量级HTTP服务器Nginx(Nginx性能优化技巧)
  10. c语言打开文件出现分段故障,c fclose() 导致分段故障_segmentation-fault_开发99编程知识库...
  11. 开源串口调试助手java_(串口通信编程) 开源串口调试助手Common (Com Monitor)
  12. Android快速开发框架ZBLibrary源码分享
  13. 动手设计 CPU(二)—— 微程序控制的运算器
  14. SheetJS 读取excel文件转出json
  15. zigbee Zstack 中串口操作的深度解析、一
  16. Premiere Pro 中的键盘快捷键
  17. IT学生技术入门值得关注的网站(页)链接
  18. Libuv的安装及运行使用
  19. 大数据风控项目实战 Drools规则引擎
  20. matlab闭式网络潮流计算,大工20秋《电力系统分析》在线作业2满分

热门文章

  1. github-copilot的使用步骤
  2. 浏览器访问图片提示Net::ERR_CONNECTION_RESET
  3. python 类里面函数的self
  4. STM32的命名含义
  5. protect 继承_C++继承详解:共有(public)继承,私有(private)继承,保护(protected)继承...
  6. 三分钟Python爬虫速成班
  7. Python3版本Django实现免费极验验证码
  8. c++替换字符的方法
  9. 蒋鑫鸿:9.8白银!沪银!期货白银!周四黄金价格走势分析及操作建议
  10. 佳祺仕冲刺上交所:年营收5.1亿 高度依赖苹果产业链