随笔 - 95,  文章 - 0,  评论 - 0,  阅读 - 14253


第八天

继承:子类与父类之间的继承关系,主要是为了
--解决代码冗余,提高代码的复用性
--继承是解决通用性问题或者共性问题
--继承是多态的前提条件
--通过extends关键字实现,子类可以继承父类的属性以及方法
--继承也可以认为是扩展
--子类继承父类
--方法的重写:存在于继承链中,子类重写父类的行为方法体现出多态性
重写:两同(方法名、参数列表一致)两小或等(返回值类型、抛出的异常)一大或等(权限修饰符),存在于继承关系当中(比如:Dog extends Aminal extends Object)
重载:两同(同一个类、同一个方法名)两无关(修饰符、返回值类型)不一样(参数列表)存在于同一类中

--方法的重载:在同一个类里面,与返回值类型无关,参数类型不一样,方法名一致,与修饰符无关

方法重载的匹配入参:

重写与重载的区别:
--重写存在继承链之中,重载存在同一个类之中
--重写是子类重写父类的方法,在调用的时候会覆盖父类的方法
--重载是方法签名不一样,方法调用通过方法签名确定
--重写是与返回值类型以及修饰符有关,重载则相反

 

 

※方法的重写(两同、一大、两小)
子类重写父类的方法(子类覆盖父类的方法),凸显出子类的行为特征
- -方法名相同、方法参数列表相同
- -和方法修饰符、返回值类型有关
--子类重写父类的方法,子类方法的权限修饰符比父类的大或者相等
--子类重写父类的方法,子类的返回值类型比父类的小或者相等
--子类重写父类的方法,子类的抛出的异常类型要比父类的小或者相等
- -当子类中有和父类一样的私有化方法,那么子类的私有化方法是一个普通方法,并不是重写了父类的方法
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数或参数的顺序不同的方法。 [1] Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同。调用方法时通过传递给它们的不同个数和类型的参数,以及传入参数的顺序来决定具体使用哪个方法。
方法重载:
方法重载就是方法名称重复,加载参数不同。
在一个Java类中,定义多个同名的方法,如果方法名相同,方法参数不同,包括参数的类型和个数都不同,叫做方法的重载。调用重载方法时,Java 编译器通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载常用于创建完成一组任务相似但参数的类型或参数的个数或参数的顺序不同的方法。
方法的重载,既可以发生在普通方法上,也可以发生在构造方法上。方法的重载,既可以发生在同类中,也可以发生在父子类中。
Java方法的重载:返回类型、修饰符可以相同,也可不同。要求同名的方法必须有不同的参数表,仅有返回类型不同是不足以区分两个重载的方法。
public class MethodOverloading{
public void show(String str){
... ...
}
public void show(int i){
... ...
}
public void show(double d){
... ...
}
public void show(int i,double d){
... ...
}
}
public class TestDemo {
public static void main(String[] args) {
//此时将根据参数的类型和个数的不同执行不同的方法体
System.out.println(add(10, 20));
System.out.println(add(30, 40, 50));
System.out.println(add(1.1, 2.1));
}
public static int add(int x, int y) {
return x + y;
}
//此时方法名称相同,参数的个数不同
public static int add(int x, int y, int z) {
return x + y + z;
}
public static double add(double x, double y) {
return x + y;
}
}具体规范编辑
一.方法名一定要相同。
二.方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体。
1.如果参数个数不同,就不管它的参数类型了!
2.如果参数个数相同,那么参数的类型必须不同。
三.方法的返回类型、修饰符可以相同,也可不同。

posted on   天涯何  阅读(49)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示