方法重写

子类从父类中继承方法。有事,子类需要修改父类中定义的方法的实现,这就是方法重写。

重写的好处在于子类可以根据需要,定义特定于自己的行为。

在面向对象原则里,重写意味着可以重写任何现有方法。实例如下:

package chaining;
// 子类Apple
public class Apple extends Fruit {public static void  main(String [] args){Apple apple = new Apple();System.out.println(apple.toString());}@Overridepublic String toString(){return super.toString()+" 888 ";}
}
// 父类Fruit
class Fruit{public String  toString(){return " 666 ";}
}

如上方法中,在fruit类中,返回值是666,而Apple类中对该方法进行重写,其返回值类型没有变

super可以引用父类的方法,所以也会输出父类的666

 666  888

注:

  • 重写的方法必须与被重写的方法具有一样的签名,以及一样或者兼容的返回类型,兼容的含义是重写方法的返回类型可以是被重写方法的返回类型的子类型。
  • 私有方法不能被重写,如果子类汇总定义的方法再父类中是私有的,那么这两个方法完全没有关系。
  • 静态方法可以被继承,但不能被重写。在父类中定义的静态方法将被隐藏,可以使用语法父类名.静态方法名(SuperClassName.staticMethodName)调用隐藏的静态方法。

方法重载

重载意味着使用同样的名字但是不同的签名来定义多个方法。方法重写意味着在子类中提供一个对方法的新的实现。

签名:方法声明的两个组件构成了方法签名 - 方法的名称和参数类型
如下就是一个方法签名

public double max(double a, double b) {}

方法重载如下:

public double max(double x,double y){if (x>y)return xelse if (y>x)return y
}
public int max(int x,int y){if (x>y)return xelse if (y>x)return y
}

注:

  • 方法重写发生在具有继承关系的不同类中,方法重载可以发生在同一个类中,也可以发生在具有继承关系的不同类中。
  • 方法重写具有相同的签名;方法重载具有同样的名字,但是不同的参数列表。

@Override

为了避免错误,我们进行方法重写时通常要在重写的子类前面写一个@Override
如:

public class Circle extends geometricOvject{@Overridepublic String toString(){return " 666 ";}
}

手把手教我班小姐姐学java之方法重写与方法重载相关推荐

  1. 手把手教我班小姐姐学java之多态

    文章目录 多态 动态绑定 声明类型 实际类型 工作机制 对象转换和Instanceof操作符 概念: 隐式转换(向上转型.自动类型转换) 显式转换( 向下转型.强制类型转换) instanceof关键 ...

  2. 手把手教我班小姐姐学java之面向对象

    真的光看不练假把式,编程主要还是打代码,就像我班这位小姐姐一样,看的不少,视频也看了,书也读了,就是写不出程序来. 木的办法,只能小白我来帮忙了!!! 例题1-简单继承 创建GeometricObje ...

  3. 猜字小游戏java方法体,手把手教你猜字小游戏,

    手把手教你猜字小游戏, package test07; import java.util.Scanner; //猜字符游戏 public class Guessing { //主方法 public s ...

  4. 手把手教你实现小程序中的自定义组件

    之前做小程序开发的时候,对于开发来说比较头疼的莫过于自定义组件了,当时官方对这方面的文档也只是寥寥几句,一笔带过而已,所以写起来真的是非常非常痛苦!! 好在微信小程序的库从 1.6.3 开始,官方对于 ...

  5. 手把手教搭建微信小程序教程

    小白式手把手教搭建微信小程序教程 宝塔软件商店下载如下:php7.3  Nginx 1.20.2  MySQL 8.0.24 phpMyAdmin 5.0 搭建准备1:一台服务器(压缩包里附购买教程) ...

  6. 重学Java设计模式-创建者模式-工厂方法模式

    重学Java设计模式-创建者模式-工厂方法模式 内容摘自:重学 Java 设计模式:实战工厂方法模式「多种类型商品不同接口,统一发奖服务搭建场景」 | bugstack 虫洞栈 工厂方法模式介绍 图片 ...

  7. Java中方法重写和方法重载的6个区别?

    文章合集:gitee.com/mydb/interv- 方法重写(Override)和方法重载(Overload)都是面向对象编程中,多态特性的不同体现,但二者本身并无关联,它们的区别犹如马德华之于刘 ...

  8. 小明学java基础系列——Java 类加载

    Java类加载学习笔记 一.基本概念 1.1 基本文件类型和概念 1.2 idea程序示例 1.2.1 idea-java源文件 1.2.2 idea-java字节码 1.2.3 idea-类加载 1 ...

  9. 【Java】跟着小丛学Java第三阶段:Java核心API

    异常处理 什么是异常 在编写Java应用程序时,可能会遇到各种类型的错误,例如输入无效的数据或尝试访问不存在的文件等.当这种错误发生时,Java会抛出一个异常,这可能会导致程序崩溃或产生不可预测的结果 ...

最新文章

  1. vb子程序未定义怎么改怎么办_提示子程序或函数未定义怎么修改。。。
  2. 分享Silverlight/WPF/Windows Phone一周学习导读(10月16日-10月22日)
  3. UA MATH524 复变函数5 代数运算、可微性与积分基础例题
  4. 从零开始写项目第七篇【搭建Linux环境】
  5. Spring IoC 容器
  6. java如何实现开机启动,怎样实现开机启动holer
  7. java排错_java排错之CPU高
  8. Linux查看GPU使用情况
  9. idea生成类注释和方法注释的方法
  10. PyTorch学习笔记(一):PyTorch环境安装
  11. CF 460C Present 【DP+】主意
  12. 雨林木风四大绝笔系统下载
  13. 大牛解密阿里云直播技术平台
  14. 9个实用的,可以写进简历的数据分析项目!
  15. 创翼软件linux版本,电信创翼客户端下载
  16. 计算机itpt证书有什么用,ITPT信息技术应用专业能力培训项目认证课程体系表.pdf...
  17. P1129 [ZJOI2007]矩阵游戏 (匈牙利算法)
  18. 计算机l符号代表什么意思,衣服sml代表什么意思 分别是什么的标记
  19. MarkdownPad2无法预览Markdown文档问题的解决
  20. Linux上编译并配置opencv-3.3.0过程

热门文章

  1. 爱心的数学函数方程_高中数学中的函数与方程思想
  2. php json decode 遍历,php json_decode 解析中文
  3. kali安装docker和portainer
  4. nginx做https跳转apache
  5. java怎么抛出异常_java中如何抛出异常使程序不中断(7)
  6. 苹果手机显示iphone已停用连接itunes_iphone忘记密码怎么办 iphone忘记密码解决方法【详细步骤】...
  7. oracle里子连接查询,pc端页面滚动到底部加载更多数据......
  8. python中如何追加_如何在Python中将元素添加到列表中-追加,扩展和插入
  9. 退出linux用户登录命令,Linux系统中用户的登入登出命令详解
  10. 广州专科计算机学校录取分数线,广州大专多少分能录取?高考分数170分能上广州大专?...