`
chenk008
  • 浏览: 26895 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java covariance

    博客分类:
  • java
 
阅读更多
Covariance means that the type of arguments, return values, or exceptions of overriding methods can be subtypes of the original types.

在Java中不支持arguments(参数)的Covariance
override(继承) -- covariance of return value and/or exception

在继承时,允许 子类方法中“返回值和exception”是父类方法的 “返回值和exception” 的子类,这是override覆盖

在继承时,参数类型即使具有继承关系,那也是两个方法,是overload重载

override例子
class Parent{ 
  Object func(Number n) throws Exception{ 
    ... 
  } 
} 

class Child extends Parent{ 
  String func(Number n) throws SQLException { 
    ... 
  } 
}



overload例子
public class C { 
public void func(Integer n){ 
} 
public void func(String n){ 
} 


参数的Covariance,属于overload
class Parent{ 
  Object func(Number n){ 
    ... 
  } 
} 

class Child extends Parent{ 
  Object func(Integer i)  { 
    ... 
  } 
} 
类的方法表
parent vtable 
Entry 1: Object func(Number n) of Parent 

child vtable 
Entry 1: Object func(Number n) of Parent 
Entry 2: Object func(Integer i) of Child 

分享到:
评论

相关推荐

    Java泛型_Java中的泛型结构_

    - 但是,泛型不支持协变(Covariance)和逆变(Contravariance),所以 `List<Dog>` 不是 `List<Animal>` 的子类型。 8. 类型推断(Type Inference): - 自Java 7起,编译器可以自动推断泛型的类型,例如在创建...

    卡尔曼滤波Java

    本资源提供的是用Java编程语言实现的卡尔曼滤波算法的源代码,这为Java开发者提供了一个理解和应用卡尔曼滤波的良好平台。 首先,我们来深入理解卡尔曼滤波的基本原理。卡尔曼滤波是一种递归的估计算法,它结合了...

    java实现的PCA

    4. 计算协方差矩阵,可以使用`RealMatrix#covariance()`方法。 5. 进行特征值分解,如`EigenDecomposition`类的`getEigenvalues()`和`getEigenvectors()`方法。 6. 选择前k个最大特征值对应的特征向量。 7. 使用这k...

    GMM java代码

    在GMM中,每个混合组件由一个多元高斯分布表示,其参数包括均值向量(mean vector)和协方差矩阵(covariance matrix)。 2. **高斯混合模型**: GMM是一种概率模型,它假设数据是由多个高斯分布的混合生成的。...

    java泛型,java知识

    super SomeClass`表示任何`SomeClass`或其父类的对象,但Java中不支持下界通配符的写法,一般通过协变(covariance)和逆变(contravariance)实现类似功能。 6. 类型擦除 - Java的泛型是通过类型擦除实现的,这...

    JAVA可变(协变)返回类型

    首先,我们要明白什么是协变(Covariance)。在面向对象编程中,协变是指子类型可以被当作父类型来使用。例如,如果`Cat`是`Animal`的子类,那么`List<Cat>`理论上应该也是`List<Animal>`的子类。然而,由于Java中的...

    Java实现pca

    public static double[][] covarianceMatrix(double[][] data) { // 计算中心化后的数据 // ... // 计算协方差矩阵 // ... } // 3. 求特征值和特征向量 public static void eigenDecomposition(double[][] ...

    java零基础自学 之 JAVA泛型

    在泛型中,子类型可以使用更具体的类型参数,这是一个称为协变(covariance)的概念,但需要注意的是,这仅限于只读操作,因为写入操作可能会导致类型安全问题。 总结来说,Java 泛型是提高代码质量和效率的重要...

    Java泛型深入研究

    5. **协变与逆变**:泛型的协变(Covariance)和逆变(Contravariance)主要涉及集合类的使用。比如,`List<Number>`是`List<Object>`的子类型,这是协变;而`Comparator<Number>`不是`Comparator<Object>`的子类型...

    关于java泛型的小测试(wildcard,erasure,covariant,raw type)

    在本小测试中,我们将探讨几个与Java泛型相关的概念:通配符(Wildcards)、消除(Erasure)、协变(Covariance)和原始类型(Raw Types)。以下是对这些概念的详细解释: 1. **通配符(Wildcards)** - 通配符是...

    A Java Tool for Exploring State Estimation using the Kalman Filter

    ### 关于Java工具探索卡尔曼滤波器状态估计的相关知识点 #### 标题与描述解析: 标题和描述都提到了“一个用于探索基于卡尔曼滤波的状态估计的Java工具”。这意味着该工具是专为帮助用户理解和操作卡尔曼滤波器算法...

    java泛型机制

    为了实现协变(Covariance)和逆变(Contravariance),可以使用通配符的上界和下界。 **泛型方法:** 除了泛型类,我们还可以定义泛型方法,它们在方法签名中使用类型参数: ```java public static <T> void swap...

    Java1.5泛型指南中文版

    数组在泛型中有一些特殊规则,因为数组天生具有协变性(covariance),即 `Number[]` 可以赋值给 `Object[]`,但这可能导致类型不安全。泛型集合则通过类型参数避免了这种问题。 Class Literals as Run-time Type ...

    java协变返回类型使用示例

    在面向对象编程中,协变(Covariance)通常与类型系统和方法签名有关。当一个类型的安全操作在它的子类型中也是安全的,我们说这个类型具有协变性。对于返回类型,如果子类的方法返回一个父类方法返回类型的子类对象...

    Kalman 滤波器

    在Java编程语言中实现卡尔曼滤波器,可以广泛应用于信号处理、控制系统、导航定位、金融预测等多个领域。 卡尔曼滤波器的基本工作流程包括两个主要步骤:**预测(Prediction)**和**更新(Update)**。预测阶段基于...

    source-archive_CMA-ES_

    CMA-ES Java 代码:CMA-ES是Covariance Matrix Adaptation Evolutionary Strategies的缩写,中文名称是协方差矩阵自适应进化策略,主要用于解决连续优化问题,尤其在病态条件下的连续优化问题。进化策略算法主要作为...

    kalman_lms.zip

    其核心概念包括预测(Prediction)、更新(Update)步骤以及系统矩阵(State Transition Matrix)、测量矩阵(Measurement Matrix)、协方差矩阵(Covariance Matrices)等。 另一方面,LMS算法是一种在线优化方法...

    JDK1.5 包~~~~~~~~

    数组校验(Array Covariance) 在JDK1.5之前,数组的类型检查相对较弱,可能导致类型不匹配的问题。1.5版本增强了数组的类型安全性,防止了不兼容类型的数组赋值。 ### 10. 更改的异常处理 JDK1.5对异常处理进行了...

Global site tag (gtag.js) - Google Analytics