java 方法的重载、重写与重构
首先我们要知道重载、重写、重构的区别
重载:指的是在同一个类中,方法名相同,但是参数数量、参数类型或者返回类型不同的方法就叫做重载。
重写:
重写分两种、第一种的是在子类继承父类的情况下,通过@Override注解,子类方法名、参数、返回值全部一样,方法体不一样的方法就是重写。
第二种就是接口实现,实现接口必须实现接口下的所有方法,因为实现方法上也有@Override注解,所以也算是重写的一种吧。
重构:重构就是在原有的代码上,进行优化,使代码执行速度更快、或者更简单易读。
重载的优点:
1、相同的方法名,传入不同的参数调用的方法就不一样。 简单来说,就是你需要调用哪个方法,就传入重载对应的参数。
代码如下:
public class Protected1 { /**
* 调用重载方法
* @param args
*/
public static void main(String[] args) {
test1 test = new test1();
// 在这里我们可以看到,调用的方法名都是一样的,只是传入的参数类型与数量不一样
test.Overload();
System.out.println(test.Overload("重载2"));
test.Overload("重载2",3);
}
} class test1{ public test1() { }
// 在这我们可以看到,方法名称都是一样的,只是方法中参数类型与数量不一样
public void Overload() {
System.err.println("重载1");
} public String Overload(String str) {
return "重载2";
} public void Overload(String str,int i) {
System.err.println("重载3");
}
}
执行结果,代码复制即可运行
重写的优点
个人观点,如果是子类继承父类然后重写父类方法,和子类写的方法没什么区别,虽然说重写后子类要使用父类方法可以通过super点父类方法名就可以调用,但是何必要那么用呢。
但是接口就不一样了,一个实现类可以实现多个接口,增强类的重用性和复用性,扩展性;话不多说,直接看代码
public class Protected1 extends test1{ // 这里调用父类方法,我们可以看到,不用new 直接就可以使用了
public void test() {
// 在这里我们可以看到,调用的方法名都是一样的,只是传入的参数类型与数量不一样
super.Overload(); // 利用super可以调用父类方法
Overload();// 重写方法之后调用的就是重写方法
System.out.println(Overload("重载2"));
Overload("重载2",3);
} //重写之后的方法
@Override
public void Overload() {
System.err.println("重写之后的方法");
} public static void main(String[] args) {
Protected1 p = new Protected1();
p.test();
}
} class test1{
// 在这我们可以看到,方法名称都是一样的,只是方法中参数类型与数量不一样
public void Overload() {
System.err.println("重载1");
} public String Overload(String str) {
return "重载2";
} public void Overload(String str,int i) {
System.err.println("重载3");
} }
java 方法的重载、重写与重构的更多相关文章
- java 方法的重载重写
面向对象有三大特性:封装,继承,多态 多态则需要满足三大条件1要有继承2要有重写3父类引用子类对象 很多人对方法的重载重写有很大疑问,下面我来介绍一下方法的重载重写 方法重载就是方法名称重复,加载参数 ...
- java方法的重载
java方法的重载 public class Person1 { private String name; //姓名 private int age; //年龄 priva ...
- Java方法之重载
Java方法之重载 本篇探究Java中的方法重载.那么,什么是重载呢?先上一串代码: package com.my.pac06; /** * @author Summerday * @date 201 ...
- JAVA方法的重载(overload)和覆盖(override)
方法的重载(overload)和覆盖(override) 有的时候,类的同一种功能有多种实现方式,到底采用哪种实现方式,取决于调用者给定的参数.例如我们最常用的System.out.println() ...
- java方法重写规则 重载
方法的重写规则 参数列表必须完全与被重写方法的相同: 返回类型必须完全与被重写方法的返回类型相同: 访问权限不能比父类中被重写的方法的访问权限更低.例如:如果父类的一个方法被声明为public,那么在 ...
- Java 方法的重载及引用数据类型(类)
方法的重载 我们假设要在程序中实现一个对数字求和的方法,由于参与求和数字的个数和类型都不确定,因此要针对不同的情况去设计不同的方法. Java允许在一个类中定义多个名称相同的方法,但是参数的类型或个数 ...
- 详解java方法的重载
1.方法的重载: 方法名相同,参数列表不同就叫做方法的重载.
- java 方法的重载
方法的重载:一个类中允许出现一个以上的同名方法,必须保证同名方法的参数列表不同 好处:方便阅读,优化程序设计 重载规则:重载方法名相同,但每个重载方法都必须有一个独一无二的参数类型列表,方 ...
- Java基础---Java方法的重载Overload
对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦. 方法的重载(Overload):多个方法的名称一样,但是参数列表不一样.好处:只需要记住唯一一个方法名称,就可以实 ...
随机推荐
- .NET Core中创建和使用NuGet包
在.NET Core的项目中,如果我们要在项目中引用其它DLL文件,不应该直接在项目引用中添加DLL文件(虽然在.NET Core项目中也可以这么做),建议是去直接下载DLL文件所属的NuGet包.这 ...
- Consul+Nginx部署高可用
1. Consul Server 创建consul server虚拟主机 docker-machine create consul 出现如下内容即创建成功 Running pre-create che ...
- 全屏banner及全屏轮播
一.全屏banner 1.设置网页图片全屏banner <!DOCTYPE html> <html lang="en"> <head> < ...
- 同源策略与JSONP劫持原理
同源策略 浏览器中有两个安全机制,一个浏览器沙盒(Sandbox),另一个就是同源策略(Same Origin Policy,简称SOP) ,下面介绍同源策略.同源是指同协议.同域名.同端口,必须三同 ...
- Prism+MaterialDesign+EntityFramework Core+Postgresql WPF开发总结 之 基础篇
本着每天记录一点成长一点的原则,打算将目前完成的一个WPF项目相关的技术分享出来,供团队学习与总结. 总共分三个部分: 基础篇主要争对C#初学者,巩固C#常用知识点: 中级篇主要争对WPF布局与美化, ...
- 9.Maven的生命周期
Clean Lifecycle: 在进行真正的构建之前进行一些清理工作. Default Lifecycle :构建的核心部分,编译,测试,打包,部署等等. Site Lifecycle : 生成项目 ...
- [vijos1159&洛谷1494]岳麓山上打水<迭代深搜>
题目链接:https://vijos.org/p/1159 https://www.luogu.org/problem/show?pid=1494 这是今天的第三道迭代深搜的题,虽然都是迭代深搜的模板 ...
- elasticesearch搜索返回高亮关键字
pre_tags 前缀标签 post_tags 后缀标签 tags_schema 设置为styled可以使用内置高亮样式 require_field_match 多字段高亮需要设置为false 使用h ...
- Redis 笔记(四)—— SET 常用命令
常用命令 命令 用例和描述 SADD SADD key item [item ...] —— 将一个或多个元素添加到集合中,返回添加的数量 SREM SREM key item [item ...] ...
- 关于selenium定位元素时,出现此问题的处理办法:find_element=wait.until(ec.presence_of_element_locatetd(locator))定位不到页面元素的问题
最近再用,selenium中的from selenium.webdriver.common.by import By方法时,一直报错如下(图一),各种百度都没有解决,最后只能脱离框架,从最原始的代码开 ...