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):多个方法的名称一样,但是参数列表不一样.好处:只需要记住唯一一个方法名称,就可以实 ...
随机推荐
- TensorFlow 一步一步实现卷积神经网络
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! TensorFlow 从入门到精通系列教程: http://www ...
- WEB缓存控制机制与varnish简介
在说到缓存varnish前,我们首先来了解下对于web服务缓存到底是什么?它有哪些特点,基础原理是什么? http是web应用协议,通常我们说的一次http事务,不外乎就是客户端请求,服务端响应,通常 ...
- SpringBoot使用RedisTemplate操作Redis时,key值出现 \xac\xed\x00\x05t\x00\tb
原因分析 原因与RedisTemplate源码中的默认序列化方式有关 defaultSerializer = new JdkSerializationRedisSerializer( classLoa ...
- element的多文件上传
项目需求: 可上传多个文件 可删除 文件过大时用户输入可上传至其他网站,并将文件名和地址上传至本网站 问题点: 大文件用户输入内容无法合并到已上传文件的列表进行展示 上传多个大文件地址时前面已上传的大 ...
- Aplayer搭配Metingjs音乐插件的使用
Aplayer搭配MetingJS音乐插件的使用 1. Aplayer和MetingJ的介绍 Aplayer官网文档:https://aplayer.js.org/#/ Metingjs官网文档:ht ...
- FZU - 2204 简单环形dp
FZU - 2204 简单环形dp 题目链接 n个有标号的球围成一个圈.每个球有两种颜色可以选择黑或白染色.问有多少种方案使得没有出现连续白球7个或连续黑球7个. 输入 第一行有多组数据.第一行T表示 ...
- 轻轻松松了解Java的初始化方法(含对象数组的小问题)
Java基础复习6-初始化 之前讲过了类的一些基础,想必大家都知道了类的定义 什么?你忘了? 下面给你一个例子快速复习 class AClass{ int a; boolean b; void get ...
- 为什么Swift和Python要抛弃++\--?
简单好用的++.-- 说到自增(++)\自减(--)运算符,小伙伴们应该都不会陌生,在很多编程语言的代码中,都经常出现它们的身影. 比如常用的for语句 for (int i = 0; i < ...
- 【数据库测试工具】认识Sysbench
本文基于课堂PPT笔记整理,主要介绍一下Sysbench及其简单使用,实验代码部分在代码中有重点注释,不另作说明. 一,基准测试 什么是数据库的基准测试? 数据库的基准测试是对数据库的性能指标进行定量 ...
- Python起步学习
Python起步学习 案例1:程序输入输出 案例2:判断合法用户 安全3:编写判断成绩的程序 1 案例1:程序输入输出 1.1 问题 编写login.py脚本,实现以下目标: 提示用户输入用户名 将用 ...