当前位置:网站首页>重载和重写
重载和重写
2022-06-26 05:42:00 【王小小鸭】
方法重载
简单来说就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者重载方法
方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载。
1)多个方法在同一个类中
2)多个方法具有相同的方法名
3)多个方法的参数不相同,类型不同或者数量不同
下面的程序哪个和show()方法重载()?**A、C、D**
class Demo{
void show(int a,int b,float c){}
}
A.void show(int a,float c,int b){} //√ 参数顺序不同
B.void show(int a,int b,float c){} //× 完全一致
C.int show(int a,float c,int b){return a;} //√ 同方法名,参数顺序不同
D.int show(int a,float c){return a //√ 参数不同
方法重载特点:
*重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式
*重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否相互构成重载
方法重写
* 1、方法重写概念
* 子类出现了和父类中一模一样的方法声明(方法名一样,参数列表也必须一样)
* 2、方法重写的应用场景
* 当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容
具体实例: 猫和动物
猫类属于动物类,继承了动物类,具有相同的方法“eat”,并且重写了eat,最后输出的也是重写的“猫吃鱼”
可以结合http://t.csdn.cn/fqWv6理解
package com.object_02;
public class Animal9 {
public int age = 40;
public void eat() {
System.out.println("动物吃东西");
}
}
package com.object_02;
import com.object_02.Animal9;
public class Cat9 extends Animal9 {
public int age = 20;
public int weight = 10;
@Override
public void eat() {
System.out.println("猫吃鱼");
}
public void playGame() {
System.out.println("猫捉迷藏");
}
}
package com.object_02;
public class AnimalDemo9 {
public static void main(String[] args) {
//有父类引用指向子类对象
Animal9 a = new Cat9();
System.out.println(a.age);
// System.out.println(a.weight);
// 因为成员变量编译看和运行看父类,父类中没有,所以weight报错
// 运行出的age也是父类的40
a.eat();
// a.playGame();
//因为成员方法编译看父类,父类Animal中只有eat方法,所以playGame方法报错
//因为运行看子类,所以eat方法运行的结果是子类重写后的"猫吃鱼"
}
}
3、Override注解
* 用来检测当前的方法,是否是重写的方法,起到【校验】的作用 2.7 方法重写的注意事项(掌握)
* 方法重写的注意事项
1. 私有方法不能被重写(父类私有成员子类是不能继承的)
2. 子类方法访问权限不能更低(public > 默认 > 私有)
重载和重写的区别如下(拓展)
1.定义不同---重载是定义相同的方法名,参数不同;重写是子类重写父类的方法。
2.范围不同---重载是在一个类中,重写是子类与父类之间的。
3.多态不同---重载是编译时的多态性,重写是运行时的多态性。
4.返回不同---重载对返回类型没有要求,而重写要求返回类型,有兼容的返回类型。
5.参数不同---重载的参数个数、参数类型、参数顺序可以不同,而重写父子方法参数必须相同。
6.修饰不同---重载对访问修饰没有特殊要求,重写访问修饰符的限制一定要大于被重写方法的访问修饰符。
边栏推荐
- Command line interface of alluxio
- 【活动推荐】云原生、产业互联网、低代码、Web3、元宇宙……哪个是 2022 年架构热点?...
- 【 langage c】 stockage des données d'analyse approfondie en mémoire
- Summary of the 10th provincial Blue Bridge Cup
- Posting - don't get lost in the ocean of Technology
- Mongodb image configuration method
- CMakeLists. txt Template
- Old love letters
- 一段不离不弃的爱情
- 写在父亲节前
猜你喜欢
[activity recommendation] cloud native, industrial Internet, low code, Web3, metauniverse... Which is the architecture hot spot in 2022
The wechat team disclosed that the wechat interface is stuck with a super bug "15..." The context of
SDN based DDoS attack mitigation
Gram 矩阵
Leetcode114. 二叉树展开为链表
Supplementary course on basic knowledge of IM development (II): how to design a server-side storage architecture for a large number of image files?
工厂方法模式、抽象工厂模式
原型模式,咩咩乱叫
慢慢学JVM之缓存行和伪共享
【ARM】在NUC977上搭建基于boa的嵌入式web服务器
随机推荐
Security problems in wireless networks and modern solutions
Posting - don't get lost in the ocean of Technology
June 3 is a happy day
工厂方法模式、抽象工厂模式
Mongodb image configuration method
The use of loops in SQL syntax
Command line interface of alluxio
自定义WebSerivce作为代理解决SilverLight跨域调用WebService问题
When was the autowiredannotationbeanpostprocessor instantiated?
Old love letters
Chapter 9 setting up structured logging (I)
[activity recommendation] cloud native, industrial Internet, low code, Web3, metauniverse... Which is the architecture hot spot in 2022
睛天霹雳的消息
There are applications related to web network request API in MATLAB (under update)
uni-app吸顶固定样式
生命原来如此脆弱
LeetCode_ Binary search tree_ Simple_ 108. convert an ordered array to a binary search tree
国务院发文,完善身份认证、电子印章等应用,加强数字政府建设
A love that never leaves
数据存储:MySQL之InnoDB与MyISAM的区别