首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我的泛型超类方法返回一个子类元素列表,如何在decendent类中重写此方法以返回子类列表

在泛型超类方法中返回子类元素列表,可以通过在子类中重写该方法来实现。重写方法时,需要指定子类作为返回类型,并在方法体中返回子类元素列表。

以下是一个示例代码:

代码语言:txt
复制
public class GenericSuperClass<T> {
    public List<T> getElements() {
        List<T> elements = new ArrayList<>();
        // 添加元素到列表中
        return elements;
    }
}

public class DescendantClass extends GenericSuperClass<DescendantClass> {
    @Override
    public List<DescendantClass> getElements() {
        List<DescendantClass> elements = new ArrayList<>();
        // 添加子类元素到列表中
        return elements;
    }
}

在上述示例中,GenericSuperClass 是一个泛型超类,其中的 getElements 方法返回一个泛型列表。DescendantClassGenericSuperClass 的子类,通过重写 getElements 方法,将返回类型指定为 List<DescendantClass>,并在方法体中返回子类元素列表。

这样,当你在使用 DescendantClass 类时,调用 getElements 方法将返回子类元素列表。

请注意,以上示例是一个简化的示例,实际应用中可能需要根据具体情况进行适当的调整和扩展。

关于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,无法提供相关链接。但腾讯云提供了丰富的云计算服务,你可以通过访问腾讯云官方网站,了解他们的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java 示例 - 方法,接口

Java Java 5 添加了提供编译时类型检查,并消除了ClassCastException使用集合时常见风险。整个收集框架都进行了重写,以使用进行类型安全。...是通配符,表示未知类型。通配符可以用作参数,字段或局部变量类型,有时还可以用作返回类型。在调用通用方法或实例化通用时,不能使用通配符。...假设我们要编写一个返回列表数字总和方法,那么我们实现将是这样。...我们使用超级关键字和下限通配符(?)来实现目的。 我们可以传递下界或下界任何类型作为参数,在这种情况下,java编译器允许将下界对象类型添加到列表。...12.3)何在Java工作? 通用代码可确保类型安全。编译器使用类型预先在编译时删除所有类型参数,减少运行时重载。 13.

2.6K50

JavaSE笔记

() 返回列表一个元素 public E getLast() 返回列表最后一个元素 public E removeFirst() 此列表删除并返回一个元素 public E removeLast...: 将类型由原来具体类型参数化,然后在使用/调用时传入具体类型 这种参数类型可以用在方法、和接口中,分别被称为方法接口 定义格式 :指定一种类型格式,这里类型可以看成是形参...这里类型可以看成是形参 将来具体调用时候给定类型可以看成是实参,并且实参类型只能是引用类型数据 定义格式 修饰符 class 名 {}; 方法定义格式 修饰符 返回值类型...)方法格式写入输出字节流 void store(Writer writer,String comments):将此属性列表(键和元素对)写入Properties表适合于使用load(Reader...default Consumer andThen(Consumer after):返回一个组合Consumer,依次执行操作,然后执行after操作 Consumer 接口也被称为消费接口,它消费数据数据类型由指定

1.3K21

JAVA回忆录之

例如,假设希望创建一个返回数据数据平均值方法(类型数字包括:整数、单精度和双精度)。...extends Integer>,因此你不能往改列表添加任何元素。 消费者使用super 如果需要一个列表使用T类型元素(即你想把T类型元素加入到列表),你需要把这个列表声明成();//illegal 重写方法 可以像重写其他任何方法那样重写方法: class Gen{ T obj; Gen(T...桥接方法 子类重写方法类型擦除不能产生于方法相同擦除。对于这种情况,会生成使用类型擦除方法,并且这个方法调用具有由子类指定类型擦除方法。当然桥接方法只会在字节码级别发生。

50130

Java入门必背100条

大家好,又见面了,是你们朋友全栈君。 Java必背100条 1、编写:编写Java代码保存在“.java”结尾源文件。...56、重写规则: 子类重写方法方法名和形参列表与父重写方法方法名和形参列表相同 。...③ 返回值类型: 父重写方法返回值类型是void,则子类重写方法返回值类型只能是void。 父重写方法返回值类型是A类型,则子类重写方法返回值类型可以是A或A子类。...②包含抽象方法,一定是一个抽象。反之,抽象可以没有抽象方法。 ③若子类重写了父抽象方法后,子类方可实例化。...⑤如何在子类(或实现)方法调用父、接口中被重写方法

1K20

Java学习和使用

Object类型;当我们执行get方法时候,同样不存在,也是被当做Object来返回; 可是,有个疑问,在编译期由于存在,我们不需要显式进行类型转换,但是在运行期间是如何解决呢,难道不会报错吗...当再次查看ArrayList源码时发现,elementData对象实际上是一个Object类型数组,当我们获取元素返回时候,编译器会根据方法返回值进行类型安全检查,所以 return (E) elementData...; 重写Overriding是父子类之间多态性一种表现,如果在子类定义某方法与其父有相同名称和参数,我们说该方法重写(Overriding)。...Overloaded方法是可以改变返回类型但同时参数列表也得不同。...接下来,让我们看一个例子,来具体分析; 父Test 子类TestChild 由于擦除存在,在程序运行期间,Test在JVM虚拟机实际形态如下: 编译后Test 被擦除,变量替换为

1.5K40

被忽视Java基础

在平时阅读,一旦有眼前一亮感觉,总会把书中内容打磨一番,发一发沸点,想想 2021年 也临近年底了,今天就来做个总结。 方法签名组成部分有且仅有方法名和参数列表。...因此构成方法重载条件是方法名相同,参数列表不同,与返回值、抛出异常类型无关。 2. 方法显示参数(又称实参)传递是副本。...()方法获取方法仅仅为获取数组元素而存在,其实这个方法更适合放在 Array 。...重写 Object clone()方法,使用super.clone()调用原生克隆方法,并将其修饰符改为 public ,否则重写clone()方法只能在本身和其子类调用。...匿名子类一个匿名对象,getEnclosingClass()则能得到其外围,即包含这个静态方法

27700

面向对象基础知识学习总结笔记2019-8-26

——————————————- 方法重载():方法名相同,方法列表不同(包含了参数个数和类型不同);方法重载和返回值没有关系; 可以在不改变原方法基础上,新增功能。...多态: 1.子类身份出现 2.子类在工作时自己方式来实现 3.子类身份出现时,子类特有的属性和方法不可以使用。...多态实现方式: 方式一:重写 方式二:接口 方式三: 抽象和抽象方法 多态引用时,构造子类对象时构造方法调用顺序 1,先调用构造方法,多重首先调用最远超方法...同时在两个元素之间添加元素也比较困难。 数据结构:堆栈、队列、列表、哈希表、红黑树等数据结构。 ArrayList java自动装、拆箱。比如整数类型默认为int类型。...小数默认为double类型 ————————— 认为就是进行限定类型。如何定义方法?

22610

Java 中文官方教程 2022 版(六)

这类似于声明一个类型,但类型参数范围仅限于声明它方法。允许静态和非静态方法,以及构造方法方法语法包括一个类型参数列表,在方法返回类型之前出现在尖括号内。...MyClass 和 MyClass 共同父是 Object。 有关如何在类型参数相关情况下创建两个之间类似子类关系信息,请参阅通配符和子类型。...通配符可以在各种情况下使用:作为参数、字段或局部变量类型;有时作为返回类型(尽管更具体编程实践更好)。 通配符永远不会用作方法调用、实例创建或类型类型参数。...如有必要,插入类型转换保持类型安全。 生成桥接方法保留扩展类型多态性。 类型擦除确保为参数化类型不会创建新;因此,不会产生运行时开销。... 限制 所示,有一些情况下不能使用非可实例化类型:例如,在 instanceof 表达式,或作为数组元素。 堆污染 堆污染 发生在参数化类型变量引用不是该参数化类型对象时。

11600

Java 语言基础 (常用概述和使用, String 概述和使用, 可变字符串和日期相关, 集合库)

自定义 和普通区别就是名后面添加了类型参数列表,可以有多个类型参数,: 等。 实例化时应该指定具体数据类型,并且是引用数据类型而不是基本数据类型。...父子类可以选择保留也可以选择指定类型。如果子类保留父 T,则可以在构造对象时来指定 T 类型。...如果子类没有保留父 T 且没有指定,则父 T 默认为 Object 类型。 子类除了指定或保留父,还可以增加自己。...如果 B 是 A 一个子类或子接口,而 G 是具有声明或接口,则 G 并不是 G 子类型。...extends T> src) 将一个列表所有元素复制到另一个列表 方法声明 功能介绍 static void reverse(List<?

99430

大数据--scala学习第一章:基础第二章:控制结构和函数第三章:数组第四章:字典和元组第五章:第六章:对象第七章:包和引入第八章:继承第九章文件和正则表达式第十章特质:接口第十一章操作符第十二章函

3、测试某个对象属于哪个使用isInstanceOf方法,当对象是该类或者子类对象时返回True. 4、Scala也有protected修饰符,与java一样 5、子类辅助构造器不能调用父构造器只能通过子类主构造器进行调用形式如下...5、构造器调用顺序: 6、特质还可以继承,该特质被实现时实现自动继承特质,假如我们已经扩展了另一个,就必须该类是特质。... 1-2,1 to 10 其实都是方法调用。中置操作符可以用来重写操作符,重写操作符只需要在定义该操作符方法。 3、一元操作符:a 标识符,等同于a.标识符()。...可变序列与java大体类似 4、列表:在Scala列表要么是空要么是一个head元素加上一个tail元素而tail元素又是一个链表,思路是:嵌套链表,head开始tail嵌套。...第十六章类型 1、Scala也存在概率,与java不同Scala用方括号来定义: class pair[T,S](val first: T, val second: S)//

4.4K20

本章内容包括: 声明型函数和 类型擦除和实化类型参数 声明点变型和使用点变型 9.1 类型参数 // 如果要创建一个列表,必须显示指定,有值的话可以被推导出来...in authors } // 这个 扩展函数 能任何种类元素列表上调用 // val List.penultimate: T //...*/ // ListList是只读,所以它只有一个返回类型为 T 元素方法 get,而没有定义任何类型为T元素存储到列表方法,因为它是协变...变型是一种说明两种拥有相同基础类型和不同类型参数类型之间子类型化关系方式,它说明了如果其中一个类型类型参数是另一个类型参数子类型 这个类型就是另外一个类型子类型或者类型。...在Kotlin 既可以为整个指定变型(声明点变型),也可以为类型特定使用指定变型(使用点变型)。 当确切类型实参是未知或者不重要时候,可以使用星号投影语法。

1.8K10

Java总结

方法中有 是方法;没有的,称为成员方法。...; signature:独有的标记,普通没有,JDK5才加入,标记了定义时成员签名,包括定义时参数列表,参数类型,返回值等; 可以看到public T field1;是签名,还保留了定义格式...一个原则:一个或类型变量不可成为两个不同参数化接口类型子类型。...通配符类型 通配符是在使用时一种机制,不能用在定义时表达式(这是类型参数限定符)。 子类型通配符 如果P是S,那么 Pair就是Pair<?...与继承 继承原则 继承时,必须对父类型参数进行初始化。或者说父参数必须在子类可以确定具体类型。

94020

精选Java基础面试120题

返回值是基本数据类型时候返回一个具体名时 本质上返回一个该类对应子类对象 抽象名时 返回应该是一个继承自该类子类对象 接口名返回一个实现了该接口子类对象 2.17...好处 提高了程序安全性 将运行期遇到问题转移到了编译期 省去了类型强转麻烦 常见应用 方法 接口 2.21 如何编写一个方法,让它能够接受参数并返回类型?...方法重写:指子类中出现了和父中一模一样方法声明,也被称为方法覆盖,方法复写 需要注意问题: 1. 父私有方法不能被重写 2. 子类重写方法时,访问权限不能更低 3....重载Overload表示同一个可以有多个名称相同方法,但这些方法参数列表各不相同(即参数个数或类型不同),与返回值类型无关。...重写Override发生在子父一个现象, 子类中出现了和父中一模一样方法,与返回值有关. 6.8 什么是多态,多态前提是什么?

75820

年后跑路第一战,从Java学起!

方法 对于方法,我们可以用不同类型参数调用它们。编译器将确保我们使用任何类型正确性。 方法属性: 方法方法声明返回类型之前有一个类型参数(包含类型菱形运算符)。...即使该方法返回 void,这也是必需。 如前所述,该方法可以处理多个类型。在这种情况下,我们必须将所有类型添加到方法签名。...例如,我们可以指定一个方法接受一个类型及其所有子类(上限)或一个类型及其所有(下限)。...在中使用通配符 在Java,通配符由?表示,我们使用它们来指代未知类型。通配符对特别有用,可以用作参数类型。 首先,我们知道Object是所有 Java 。...super T> 表示未知类型,它是 T (= T 及其所有父)。 类型擦除 Java 添加了确保类型安全。

69130

更深入地理解Java

在较小程序,这看起来像是一个微不足道添加。但是在较大程序,这可以增加显著健壮性并使程序更易于阅读。 3. 方法 方法是用单个方法声明编写方法,可以用不同类型参数调用。...以下是方法一些属性: 方法方法声明返回类型之前有一个类型参数(包裹类型菱形运算符) 类型参数可以有界(边界将在本文后面解释) 方法可以具有不同类型参数,这些参数在方法签名中用逗号分隔...,该函数将具有T类型元素数组转换为包含G类型元素列表。...3.1.边界 如前所述,类型参数可以是有界。有界意味着“限制”,我们可以限制方法可以接受类型。 例如,可以指定一个方法接受一个类型及其所有子类(上限)或一个类型所有它(下限)。...类型擦除 被添加到Java确保类型安全,并确保不会在运行时造成开销,编译器在编译时对应用一个名为type erasure进程。

99430

JAVA:一篇文章理清多态

基于这样想法,甚至有一些人将多态扩展到了更广泛、更复杂情况,比如下面这种,连都算进了多态: ?   那么,多态真的是有那么多种情况吗?...但是单纯多态并没卵用,令Employee对象变量a引用了一个Enginner对象,然后呢,即便在Enginner重写了getAnnualSalary返回15薪,在对a调用getAnnualSalary...举例来说,EmployeegetAnnualSalary返回12*salary,Enginner重写了该方法返回15*salary,那么当出现下述情况时: Employee a=new Enginner...(例Enginner重写了EmployeegetAnnualSalary方法),如果是则调用其实际类型方法例也即调用Enginner返回15*salarygetAnnualSalary...比如说写一个抽象List,声明一个get方法获取列表中指定元素,声明一个set方法设置列表中指定元素,然后实现一个非抽象子类LinkedList,内部采用链表结构存储列表,再实现一个ArrayList

42830

Java<? extends T>和<? super T>理解

super T> 表示类型下界(Java Core类型限定),表示参数化类型是此类型类型(父类型),直至Object; 上界<?...所以通配符和类型参数区别就在于,对编译器来说所有的T都代表同一种类型。比如下面这个方法里,三个T都指代同一个类型,要么都是String,要么都是Integer。...或者他一个子类,所以,可以用get方法直接获得值: List<?...出于对类型安全考虑,我们可以加入Father对象或者其任何子类Son)对象,但由于编译器并不知道List内容究竟是Father哪个,因此不允许加入特定任何Human)。...既不能用于方法参数传入,也不能用于方法返回。 带有super类型限定通配符可以向对象写入,带有extends子类型限定通配符可以向对象读取。

1.1K10

Java

super T> 表示类型下界(Java Core类型限定),表示参数化类型是此类型类型(父类型),直至Object; 上界<?...所以通配符和类型参数区别就在于,对编译器来说所有的T都代表同一种类型。比如下面这个方法里,三个T都指代同一个类型,要么都是String,要么都是Integer。...或者他一个子类,所以,可以用get方法直接获得值: List<?...出于对类型安全考虑,我们可以加入Father对象或者其任何子类Son)对象,但由于编译器并不知道List内容究竟是Father哪个,因此不允许加入特定任何Human)。...既不能用于方法参数传入,也不能用于方法返回。 带有super类型限定通配符可以向对象写入,带有extends子类型限定通配符可以向对象读取。

1K30

十问,你能扛住吗?

,打个比方:造了一个模型,具体填充什么样材质,由使用者去做决定。...问题四:说说方法定义和使用 答: 方法可以定义在普通,也可以定义在,类型变量是放在修饰符后面,返回类型前面。... 在类型变量继承,可以根据需要拥有多个接口类型,但是限定至多有一个。如果用一个作为限定,它必定是限定列表一个。...; 然而,数组带有特别的保护,如果试图将一个存储到一个子类数组,虚拟机会抛出ArrayStoreException异常。...总结一下: 带有类型限定通配符可以向对象写入,带有子类型限定通配符可以从对象读取。 问题九:在虚拟机是什么样呢? 答: 虚拟机没有类型对象,所有的对象都属于普通

1K10

Java 语言基础 (和对象, 方法和封装, static 关键字和继承, 多态和特殊)

注解, 若没有构成重写则编译报错 从父继承下来方法不满足子类需求时, 就需要在子类重新写一个和父一样方法来覆盖从父继承下来版本 方法重写原则 要求方法名相同, 参数列表相同以及返回值类型相同..., 需要创建一个实现接口类型对象 该方法在运行时会调用到参数对象所实现方法 "接口/继承"引用作为方法形参时, 实参传递方式: 自定义实现接口/继承重写方法, 然后创建该对象作为实参传递...如果注解没有任何成员, 则该注解叫做标记注解/标识注解 如果注解只有一个参数成员, 建议使用参数名为 value, 而类型只能是: 八种基本数据类型, String 类型, Class 类型(...能写在类型变量声明语句中, ElementType.TYPE_USE 能标注任何类型名称....元注解 @Inherited -- 子类继承注解 注解本身不可以继承 如果一个被该注解标记过注解进行注解时, 并且子类没有任何注解应用时, 则子类就继承注解 元注解 @Repeatable

78930
领券