`
eimhee
  • 浏览: 2136878 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

泛型的继承测试

 
阅读更多

我对泛型的理解有限,这个只是极其简单的一个测试,欢迎指正,一起完善。

泛型方法的继承

默认情况,父类,子类都是泛型方法,没有任何问题
  1. class Parent0 {
  2.   <T> void say() {
  3.     System.out.println("Parent");
  4.   }
  5. }
  6. class Child0 extends Parent0 {
  7.   <T> void say() {
  8.     System.out.println("Child");
  9.   }
  10. }
第1种情况,父类是泛型方法,子类不是,没有任何问题
  1. class Parent1 {
  2.   <T> void say() {
  3.     System.out.println("Parent");
  4.   }
  5. }
  6. class Child1 extends Parent1 {
  7.   void say() {
  8.     System.out.println("Child");
  9.   }
  10. }

第2种情况,父类没有泛型,子类有泛型,编译失败
  1. class Parent2 {
  2.   void say() {
  3.   }
  4. }
  5. class Child2 extends Parent2 {
  6.   <T> void say() {
  7.   }
  8. }

第3中情况,父类泛型,子类用泛型的参数的子类,正常
  1. class Parent3 {
  2.   <Number> void say(Number number) {
  3.   }
  4. }
  5. class Child3 extends Parent3 {
  6.   <T extends Number> void say(T number) {
  7.   }
  8. }

类的泛型继承
几种情况都可以
  1. class Parent4<T> {
  2. }
  3. class Child4 extends Parent4 {
  4. }
  5. class Parent5 {
  6. }
  7. class Child5<T> extends Parent5 {
  8. }
  9. class Parent6<T> {
  10. }
  11. class Child6<TT extends T> extends Parent6 {
  12. }

只有第二种情况,出现了编译错误。 因为他覆盖了父类方法,可父类却没有泛型的返回值。
分享到:
评论

相关推荐

    C# where泛型约束测试代码

    可能的测试代码会创建一些泛型类或方法,然后进行各种约束的测试,例如检查值类型、接口实现、基类继承等。通过运行这些测试,我们可以验证泛型约束是否正确地限制了类型参数,并确保代码按预期工作。 总结一下,`...

    .net C# 泛型事件委托

    在压缩包中的`GenericEventHandleTest`文件可能是包含此类泛型事件处理测试的代码,你可以查看并学习如何实际应用这些概念。总的来说,理解并掌握泛型事件委托对于编写高效、可扩展的C#代码至关重要。

    对C++的特点,类和继承,STL与泛型编程,库的设计等沉思录

    综上所述,C++不仅具备强大的底层控制能力,还通过高级特性如类、继承、STL和泛型编程等支持现代软件工程的需求。无论是构建高效的系统级软件还是复杂的应用程序,C++都是一个强大且灵活的选择。对于想要深入了解...

    汽车入库(泛型集合的使用)

    在我们的“汽车入库”示例中,如果我们有多种类型的汽车(如轿车、SUV、卡车),我们可以使用`List&lt;Car&gt;`来存储它们,其中`Car`是一个抽象基类或接口,所有具体的汽车类型都继承自它。 泛型集合的优势在于类型安全...

    Unity3D实验室之iOS真机闪退的解决方法

    这个问题一般发生在项目比较大,OO使用良好,泛型继承用的较多的时候。第一次真机测试时,项目终于进入真机测试阶段,之前都是在Unity编辑环境下开发测试,运行的都很良好,信心满满的打包安装,结果闪退。。。,...

    基于spring MVC 和 MyBatis 泛型的代码生成模板,可以根据自己的需求修改

    例如,你可以创建一个泛型BaseMapper接口,包含通用的CRUD方法,然后每个具体的Mapper接口继承这个BaseMapper,指定具体的实体类型。这样,即使数据库表结构变化,只需修改对应的Mapper,无需改动Service层和...

    spring hibernate 泛型DAO

    泛型DAO是一个通用的DAO实现,它使用Java的泛型特性,可以适用于任何继承自特定基类或者实现特定接口的数据实体类。这样,我们只需要编写一次DAO的通用实现,然后在需要的地方通过指定具体的类型即可。 下面是一个...

    泛型DAO模型设计课堂笔记

    3. **元注解**:元注解如`@Retention`定义注解的生命周期(SOURCE、CLASS、RUNTIME),`@Target`指定注解可应用于的元素(如类、方法等),`@Inherited`使子类继承父类的注解,`@Documented`让注解出现在生成的文档...

    ssh通用基于泛型的dao

    6. 测试类(如`UserDAOTest.java`):用于测试DAO层功能的正确性。 这样的设计不仅提高了代码的复用性,还使得代码更加整洁,降低了耦合度。开发者可以根据需求轻松地扩展或替换具体的DAO实现,例如从Hibernate切换...

    生成泛型的简易Builder

    在实际项目中,我们可能会遇到更复杂的需求,例如需要处理继承关系、接口约束等。这时,可以通过泛型的边界约束、通配符等特性进一步优化Builder设计。例如,我们可以限制Builder只能处理特定类型的子类,或者通过...

    Hibernate泛型DAO及使用方法借鉴.pdf

    总结,泛型Hibernate DAO是企业级应用中常见的设计模式,它封装了数据库操作,使得业务逻辑层与数据访问层分离,提高了代码的可复用性和可测试性。在实际开发中,可以根据项目的具体需求,对这个基础实现进行扩展和...

    spring4.0 Generic Qualifier(泛型限定).docx

    `OrganizationDao`和`UserDao`分别继承自`BaseDao`,并具体化了泛型类型,`OrganizationDao`中的`M`为`Organization`,`UserDao`中的`M`为`User`。 在传统的Spring服务层实现,如`BaseService`,它有一个`BaseDao...

    swift-WolfNet一个使用泛型ObjectMapperMoya的网络请求工具

    4. 使用WolfNet:创建一个WolfNet服务,继承自`BaseService`,并提供必要的MoyaTarget。 5. 执行请求:在服务中使用`sendRequest`方法发起网络请求,传入目标和参数。 WolfNet会自动处理网络请求和结果的映射。 ...

    Unity通用泛型单例设计模式(普通型和继承自MonoBehaviour)

    本篇文章主要探讨的是在Unity中如何实现通用的泛型单例模式,包括普通型和继承自`MonoBehaviour`的两种形式。 首先,我们来看普通泛型单例的设计。这个模式通过泛型类`Singleton&lt;T&gt;`来实现,其中`T`是需要单例化的...

    java继承与多态

    // 测试类 public class Test { public static void main(String[] args) { Person person = new Person("Tom", 20); person.sayHello(); // 输出:Hello, my name is Tom Student student = new Student(...

    JAVA设计模式--程序设计--反射--注解--泛型

    在Java中,良好的程序设计包括模块化、封装、继承和多态等原则,这些原则有助于提高代码的可读性和可维护性,降低软件的复杂度。 反射是Java提供的一种强大的工具,允许程序在运行时检查并操作类、接口、字段和方法...

    junit4.8.1测试例子

    此外,JUnit 4.8.1还引入了注解驱动的测试,允许我们更简洁地编写测试代码,而不需要继承自特定的测试基类。通过这些特性,开发者能够高效地进行单元测试,确保代码的质量和稳定性。 总结起来,这个"junit4.8.1测试...

    随机测试题(新)c#代码

    测试题可能涉及使用泛型类或方法,如List或Dictionary, TValue&gt;。 通过解决这些随机测试题,C#初学者可以加深对语言的理解,提高编程能力,同时为更高级的开发任务打下坚实的基础。在实践中不断学习和应用这些知识...

    Generic04.zip

    "Generic04.zip"压缩包包含了与C#泛型相关的学习材料,特别是测试代码和相应的注释,这对于深入理解泛型的概念及其用法至关重要。 泛型是C#中的一个核心特性,它允许我们创建可重用的类型,这些类型可以操作一种或...

    c++测试题(含答案)

    例如,stl::deque是一种双端队列数据类型,STL库中还包含了许多泛型算法,如快速排序、折半查找等。 六、数据类型 在C++中,有多种基本数据类型,例如int、char、bool等。其中,real不是C++的标准数据类型。类的...

Global site tag (gtag.js) - Google Analytics