要了解“Java重写”,首先要知道“继承”,继承是一种基于已有类(父类)创建新类(子类)的一种方式

下面的Son类继承了Father类

public class Father(){public void eat(String name,int age){System.out.println("正在用筷子吃饭...");}public final void work{}
}
public class Son extends Father(){@Override  //注解public void eat(String str,int num){System.out.println("正在用刀叉吃饭...");}
}
-其中Object是所有类的父类,上面的Father类就默认继承了Object类(`public class Father extends Object(){}`)。

重写即为重新改写父类的方法,为了更准确的描述子类的行为特征
重写注意事项
0、重写后的方法可以使用@Override修饰,表示该方法被重写。
1、重写后的方法访问权限要么和父类方法访问权限相同,要么大于父类方法(public > protected > 默认 > private)。例如上面的Father类用的是public,则Son类只能用public;但如果Father类用的是protected,则Son类可以使用protected,也可以使用public 。
2、父类中用final修饰的方法(注意:若用final修饰一个,则该类没有子类,即不能被继承),子类不允许重写,但可以被继承。例如上面代码Father类中的work方法就不能被Son类重写,但可以被Son类继承。
3、父类中用static修饰的方法,子类也是不允许被重写,但可以被继承。例如上面Father类中的eat方法若改成:public static void eat(){},则只能被Son类继承,不能被其重写。
4、子类重写后的方法不能添加static修饰。
5、子类重写后的方法,方法名必须和父类方法名相同,参数列表除了名字不做限制外,其它必须相同,例如:上面Father类中(String name,int age)和Son类中的(String str,int num),除了变量名字可以变动外,变量类型和数量都需保持一致。
6、返回值

  • a、如果父类返回值void或基本数据类型,则重写后的方法返回值必须和父类方法返回值保持一致。例如上面Father类用的是voidpublic void eat(){},则Son类也只能用voidpublic void eat(){};如果Father类用的是int public int eat(){},则Son类也只能用int public int eat(){}
  • b、如果父类方法返回值引用类型,则重写后的方法返回值要么与父类一致,要么是父类方法返回值的子类。例如:Father类返回值为Objectpublic Object eat(){},则Son类返回值可以用String、int、long、double等,例如:
public Object eat(){System.out.println("正在用筷子吃饭...");return 1;
}
public String eat(){System.out.println("正在用刀叉吃饭...");  return "";
}

三分钟了解“Java重写”相关推荐

  1. 三分钟了解Java OOP思想

    Java OOP 思想深度刨析 Java面向对象编程 面向对象编程简称OOP(Object--对象.Oriendted--导向的.Programming--程序设计) 面向对象通俗来讲,就是指使用丰富 ...

  2. java 接口强制转换_三分钟学习Java泛型中T、E、K、V、?的含义

    作者:Java武学秘籍

  3. java vo转map_三分钟掌握POJO及其转换——PO、DO、DTO、VO

    三分钟掌握POJO及其转换--PO.DO.DTO.VO​mp.weixin.qq.com 概念 DTO(Data Transfer Object) 数据传输对象,原先是为分布式提供粗粒度的数据实体,减 ...

  4. java和python的比较-如何对比Python和Java,只需三分钟告诉你!

    原标题:如何对比Python和Java,只需三分钟告诉你! Java和Python两门语言都是目前非常热门的语言,可谓北乔峰南慕容,二者不分上下,棋逢对手.但是对于初学者来说,非常困惑,因为时间和精力 ...

  5. java和python的web自动化有什么区别-三分钟看懂Python和Java的区别

    随着人工智能的火爆,Python和Java一直在各种流行编程语言中名列前茅.其实Java和Python有些相似,因为很多编程语言之间是互通的.Java现在还是第一,不知道Python未来会不会超越Ja ...

  6. python和java一样吗-三分钟看懂Python和Java的区别

    随着人工智能的火爆,Python和Java一直在各种流行编程语言中名列前茅.其实Java和Python有些相似,因为很多编程语言之间是互通的.Java现在还是第一,不知道Python未来会不会超越Ja ...

  7. java 下拉列表 枚举_「Java三分钟」精准而优雅——枚举类详解

    关注我,每天三分钟,带你轻松掌握一个Java相关知识点. 1.为什么要用枚举 你在读一个老工程代码时,是否经常看见有几个类,里面放着成百上千的静态常量,场面相当恐怖,而且如果不加注释,很多你都不知道这 ...

  8. python和java的区别-三分钟看懂Python和Java的区别

    随着人工智能的火爆,Python和Java一直在各种流行编程语言中名列前茅.其实Java和Python有些相似,因为很多编程语言之间是互通的.Java现在还是第一,不知道Python未来会不会超越Ja ...

  9. [附源码]计算机毕业设计JAVA每课三分钟教学资源管理系统

    [附源码]计算机毕业设计JAVA每课三分钟教学资源管理系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe ...

最新文章

  1. java 合并 set_【Java必修课】各种集合类的合并(数组、List、Set、Map)
  2. python 语言教程(3)数据类型
  3. java excel data 导入数据_java实现导入导出excel数据
  4. JAVA将 带有空格或特殊字符的字符串转换成int数组的方法
  5. cookie和token的理解
  6. 团队作业-Beta冲刺(周三)
  7. 2021CCPC(桂林) - Suffix Automaton(后缀树+线段树)
  8. 彻夜怒肝!Spring Boot+Sentinel+Nacos高并发已撸完,快要裂开了!
  9. C++ 函数的引用传递
  10. 201521460005 实验五
  11. VUE 学习代码理解(1~5课时代码)
  12. 关于我对区块链和比特币的看法
  13. nginx.conf nginx设置用户权限
  14. keras实现手写字体识别
  15. Spark中的Driver
  16. “80后”全国模范检察官白静:传递青年干警正能量
  17. GIS开发中常用几何算法原理图解
  18. 3225 十进制到六进制
  19. 平稳信号、非平稳信号
  20. 史上最详细log4j使用文档

热门文章

  1. Qt——模态、非模态
  2. Unity协程截图,WWWForm、WWW配合上传
  3. 如何防止博客文章被窃取
  4. 一个简单的缓冲区溢出的思考
  5. NIO - Scatter/Gather
  6. 是时候开始使用JavaScript严格模式了怎样启用javascri
  7. 更好的Java虚拟机Zing: 更好的性能,无停顿,更快的启动
  8. 提供一个基于.NET的加密/解密算法
  9. Linux环境编译安装OpenJDK
  10. PHP5.5的一点变化