JLS # 8.4.2. Method Signature

The signature of a method m1 is a subsignature of the signature of a method m2 if either:

m2 has the same signature as m1, or

the signature of m1 is the same as the erasure (§4.6) of the

signature of m2.

根据上述规则,因为您的父母没有擦除,您的孩子有一个,所以它不是一个有效的覆盖。

示例8.4.8.3-4。擦除影响覆盖

类不能有两个具有相同名称和类型的成员方法擦除:

class C {

T id (T x) {...}

}

class D extends C {

Object id(Object x) {...}

}

这是非法的,因为D.id(Object)是D的成员,C.id(String)被声明为D的超类型,并且:

>这两个方法具有相同的名称,id

> C.id(String)可以访问D

> D.id(Object)的签名不是其中的一个子签名

C.id(String)

>这两种方法有相同的擦除

类的两种不同方法可能不会覆盖具有相同擦除的方法:

class C {

T id(T x) {...}

}

interface I {

T id(T x);

}

class D extends C implements I {

public String id(String x) {...}

public Integer id(Integer x) {...}

}

这也是非法的,因为D.id(String)是D的成员,D.id(Integer)在D中声明,并且:

>这两个方法具有相同的名称,id

> D.id(整数)可以访问D

>这两种方法有不同的签名(也不是一个

另一方的子签)

> D.id(String)覆盖C.id(String)和D.id(Integer)

覆盖了I.id(整数),但是这两个被覆盖的方法都是一样的

擦除

还给出了从超级到小孩允许的情况的例子

The notion of subsignature is designed to express a relationship between two methods whose signatures are not identical, but in which one may override the other. Specifically, it allows a method whose signature does not use generic types to override any generified version of that method. This is important so that library designers may freely generify methods independently of clients that define subclasses or subinterfaces of the library.

考虑一下这个例子:

class CollectionConverter {

List toList(Collection c) {...}

}

class Overrider extends CollectionConverter {

List toList(Collection c) {...}

}}

现在假设这个代码是在引入泛型之前编写的,现在CollectionConverter类的作者决定生成代码,因此:

class CollectionConverter {

List toList(Collection c) {...}

}

没有特别的分配,Overrider.toList将不再覆盖CollectionConverter.toList。相反,代码将是非法的。这将大大抑制泛型的使用,因为图书馆作家会犹豫迁移现有的代码。

java 一般方法_一般覆盖Java中的方法相关推荐

  1. BOS12——多对多添加方法,多对多页面需要字段问题(不多的话直接提供get方法),修改Realm中授权方法(查询数据库),缓存Java对象的方法,加载左侧菜单(ztree提供pId)...

    1.多对多添加方法 @Override public void add(Role model, String functionIds) {// 1.先将角色保存到数据库roleDao.save(mod ...

  2. Java实现二树杈_HashSet的hashCode方法和equals方法的重写,TreeSet中compareTo方法的重写,Comparator在treeSet中的应用。...

    HashSet的hashCode方法和equals方法的重写,TreeSet中compareTo方法的重写,Comparator在treeSet中的应用. HashSet: 首先,hashset底层是 ...

  3. java归还线程_再谈java线程

    什么是等待唤醒机制? 这是多个线程间的一种协作机制. 就是一个线程进行规定协作后,就进入到了等待状态'wait()',等待其他线程执行完他们的指定代码后,再将其唤醒'notify()'; 在有多个线程 ...

  4. jquery中Live方法不可用,Jquery中Live方法失效

    jquery中Live方法不可用,Jquery中Live方法失效 >>>>>>>>>>>>>>>>> ...

  5. java语言的多态性及特点_Java中的方法的多态性有两种形式:( )和( )。_学小易找答案...

    [填空题]已知函数 ,则微分 . [填空题]. [单选题]71.用转动小滑板法车圆锥时产生( )误差的原因是小滑板转动角度计算错误. [单选题] [填空题]Java中的方法的多态性有两种形式:( )和 ...

  6. java readline 实现_基于自定义BufferedReader中的read和readLine方法

    实例如下所示: package day0208; import java.io.FileReader; import java.io.IOException; /* * 自定义读取缓冲区,实现Buff ...

  7. java readline 超时_跳过Java中的BufferedReader readLine()方法

    是否有一种简单的方法可以跳过java中的readLine()方法(如果它花费的时间超过2秒)? 这是我问这个问题的背景: public void run() { boolean looping = t ...

  8. java中gettext方法_深入理解Java中方法的参数传递机制

    形参和实参 我们知道,在Java中定义方法时,是可以定义参数的,比如: public static void main(String[] args){ } 这里的args就是一个字符串数组类型的参数. ...

  9. java sleep唤醒_详解Java中的线程让步yield()与线程休眠sleep()方法

    Java中的线程让步会让线程让出优先级,而休眠则会让线程进入阻塞状态等待被唤醒,这里我们对比线程等待的wait()方法,来详解Java中的线程让步yield()与线程休眠sleep()方法 线程让步: ...

最新文章

  1. matlab生成多组多维高斯分布数据
  2. Linux安装—IP设置
  3. skype linux 安装,如何在Ubuntu 18.04上安装Skype
  4. mysql in 通配符_mysql必知必会--用通配符进行过滤
  5. 工厂模式——三个工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)...
  6. MySQL的备份、还原及恢复
  7. 利用sdkman安装kotlin和java环境
  8. opencv之解决Module opencv_ovis disabled because OGRE3D was not found
  9. 《Web漏洞防护》读书笔记——第7章,访问控制防护
  10. vue在调用摄像头扫码(vue-qrcode-reader)
  11. Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:Duplicate entr
  12. 2021-10-29 2021年资料员-通用基础(资料员)考试题及资料员-通用基础(资料员)免费试题
  13. Kafka 消息中间件
  14. 银行会员人脸识别方案
  15. 初步中的初步了解DFS以及DFT
  16. c语言欺凌,《中国校园欺凌调查报告》发布 语言欺凌占主导
  17. kingcms企业(php) 9.0下载,[下载]地方门户 9.0(K9地方门户版)_KingCMS官方网站
  18. HDU2066-一个人的旅行
  19. 计算PI(π)的方法
  20. 基于wasm的探索与研究(四)

热门文章

  1. MySQL事务的特性
  2. 移动**21*设置无法接通_电话打得出去,但别人打你的电话提示用户无法接通,是怎么回事?...
  3. python:字典的操作
  4. 用 Java 爬小姐姐图片,这个厉害了。。。
  5. 记一次Spring boot 和Vue前后端分离的入门培训
  6. 7个IntelliJ IDEA必备插件,提高编码效率
  7. jdbc就是这么简单
  8. “面试不败计划”:面试题基础二
  9. java基础提升篇:Java中Native关键字的作用
  10. Java中的文件下载