java1.5 放宽了对类继承过程中方法覆盖的限制,在此之前,除必须一致的方法名及参数列表外,返回类型也必须相同

而 java1.5 以后,子类中覆盖的方法的返回类型可以是父类中被覆盖方法返回类型的子类

这个小小的变化让 java 的面向对象编程更加灵活

package com.techlog.test.service;

/**

* just for test

* Created by techlog on 2016/5/21.

*/

public class ForTest {

public static void main(String[] argv) {

A a = new B();

C c = a.func();

System.out.println(c.getI());

}

}

class A {

public C func() {

C c = new C(5);

System.out.println("A func");

return c;

}

}

class B extends A {

@Override

public D func() {

D d = new D(6);

System.out.println("B func");

return d;

}

}

class C {

protected int i;

public int getI() {

System.out.println("C getI");

return i;

}

public C(int i) {

this.i = i;

}

}

class D extends C {

@Override

public int getI() {

System.out.println("D getI");

return i;

}

public D(int i) {

super(i);

}

}

打印出了:

B func

D getI

6

我们看到,首先打印出的 "B func" 说明继承自 A 类的 B 类成功覆盖了 A 类中的 func 方法,尽管 B 类 func 方法返回类型是父类被覆盖方法返回类型的子类

然后,打印出了 "D getI",这是在 main 方法中调用 c.getI() 方法打印的,这说明,B 类中覆盖的 func 方法确实返回了 D 类型对象

java 5 新特性 for_java5 新特性相关推荐

  1. 5分钟学会Java 9~Java11的七大新特性

    Java11 发布了,然而很多公司还在用Java 8 ,本文会简要介绍Java 9 -11 引入的新语法和API. 本地变量类型推断 Java 10 就已经引入了新关键词var,该关键词可以在声明局部 ...

  2. Java基础20:Java8新特性终极指南

    更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...

  3. Java基础:JDK1.5新特性

    1. ENUM枚举 1.1 枚举概述 枚举是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内.举例:一周只有7天,一年只有12个月等. 回想单例设计模式:单例类是一个类只有一个实例 那么多例 ...

  4. Java SE 6 新特性 Instrumentation 新功能

    系列内容: 此内容是该系列的一部分:Java SE 6 新特性 Instrumentation 简介 利用 Java 代码,即 java.lang.instrument 做动态 Instrumenta ...

  5. Java9发布回顾Java 8的十大新特性

    java9已经在北京时间9月22日正式发布,开发者可以在oracle jdk官网上下载到最新的jdk9. 今天,我们先来一起复习一下2014年发布的Java 8的十大新特性.先来喝杯java~~~ 按 ...

  6. JDK/Java 16 可能带来什么新特性?

    JDK 15 已于今年 9 月 15 日发布,这是一个短期版本,只会受到 Oracle 6 个月的支持.JDK 16 将作为标准 Java 版本的参考实现在 2021 年 3 月 16 日发布.与 J ...

  7. Java 10的10个新特性,将彻底改变你写代码的方式

    转载自 Java 10的10个新特性,将彻底改变你写代码的方式 Java 9才发布几个月,很多玩意都没整明白,现在Java 10又要来了.. 这时候我真尼玛想说:线上用的JDK 7 甚至JDK 6,J ...

  8. 一文总结Java\JDK 17发布的新特性

    简介: JDK 17已经于2021年3月16日如期发布.本文介绍JDK 17新特性.JDK 17于2021年9月14日正式发布(General-Availability Release).JDK 17 ...

  9. [转载] Java9发布回顾Java 8的十大新特性

    参考链接: Java中的DoubleStream mapToObj() java9已经在北京时间9月22日正式发布,开发者可以在oracle jdk官网上下载到最新的jdk9. 今天,我们先来一起复习 ...

最新文章

  1. mysql 5.7.22初始密码_mysql5.7.22安装
  2. mfc e将控件置于窗口顶层_PyQt5学习笔记04 - QWidget窗口控件基类
  3. python 实例对象 浅拷贝_Python3 入门教程——浅拷贝深拷贝差别
  4. 从iOS应用中,启动一个Unity App
  5. Java实用面试题及参考答案分享
  6. 后端技术:这35 个细节,提升你的 Java 代码质量
  7. Statement violates GTID consistency: CREATE TABLE ... SELECT.
  8. 四个数学软件主要特点
  9. java html2text_将HTML转化为TEXT的Java类
  10. Android复制assets文件到SD卡
  11. erp框架 saas_Saas模式ERP系统
  12. SAP ABAP 标题左边 GOS文件菜单 自定义 CL_GUI_GOS_CONTAINER MENU Gos based menu GOS BUTTON
  13. 电脑开机黑屏有鼠标怎么办
  14. 那些我接触过的「小而美」的公司
  15. 安徽大学计算机科学与技术学院张磊,吕钊(安徽大学计算机科学与技术学院副教授)_百度百科...
  16. linux挂载u盘出错_linux挂载U盘、移动硬盘后无法更改权限
  17. JavaScriptJQuery_jQuery选择器
  18. dev c 扫雷程序代码c语言,C语言 扫雷程序的实现
  19. _parameter;@param,refid是什么意思?
  20. python pyinstaller 打包exe文件,(附带图片 + 自己、别人电脑上均可以运行)

热门文章

  1. Dead Pixel CodeForces - 1315A(思维)
  2. 康力电梯开门不关门 服务器显示开门键动作,康力电梯门机故障代码
  3. FP Tree算法原理总结(转)
  4. 传奇服务器能否修改合击技能,传奇合击私服(合击技能)站站职业如何释放的更加准确与强大?...
  5. PAT_B_1090_C++(25分)
  6. 【计算机组成原理】定点除法运算
  7. html预览图片的功能,javascript实现的图片预览功能
  8. EasyUI 扩展自定义EasyUI校验规则 验证规则(常用的)
  9. LeetCode Hot100 ---- 动态规划专题
  10. 各种光源(灯)的光谱