再学重写和重载

简介: 再学重写和重载

重载(overload):

   提供了创建同名的方法的能力,但这些方法需要使用不同的参数类型。


   重载的要求:


   两个方法的方法名相同,但参数类型和个数要有所不同。    发生在一个类里。


   作用:


   在不改变原方法的基础上新增功能。(用对象.的时候,可以.出两个方法)可以扩展函数。让类以统一的方式处理不同类型数据。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法,这就是多态性。方法重载可以提高函数的可读性。


   主要用在构造函数里,在初始化类时,通过重载构造方法,来给对象赋予不同的值。


重写(overide):

   也叫方法覆盖。


   子类不想原封不动的封装父类的方法,而是做一定的修改。


   重写的要求:


   用新方法覆盖原来的方法。   发生在继承类里。


   重写的两个方法返回值,方法名,参数列表必须完全一致。这样才能完全覆盖。像是扩展函数功能的另一种方法。


   当子类重写了父类中的print()方法后,使用S调用的是子类的print()方法,父类中的print()方法被覆盖了。也就是说,如果现在子类将父类中的方法重写了,调用的时候肯定是调用被重写过的方法,那么如果现在一定要调用父类中的方法该怎么办呢?此时,通过使用.. super关键就可以实现这个功能,super关键字可以从子类访问父类中的内容,如果要访问被重写过的方法,使用“super.方法名(参数列表)”的形式调用。


   在面向对象程序设计的思想中,类的继承和多态性主要就是体现在子类重写父类的方法。而构造方法的重载作为方法重载的一个典型特例,可以通过重载构造方法来表达对象的多种初始化行为。


   我认为,重载和重写都是扩展函数功能的两种方法。


相关文章
|
1月前
|
C++
C++番外篇——对于继承中子类与父类对象同时定义其析构顺序的探究
C++番外篇——对于继承中子类与父类对象同时定义其析构顺序的探究
53 1
|
4月前
|
搜索推荐 Java 编译器
【Java探索之旅】多态:重写、动静态绑定
【Java探索之旅】多态:重写、动静态绑定
30 0
|
5月前
|
编译器 C++ 开发者
通俗讲解 初学者一文看懂!虚函数、函数重载、重写的区别
函数重载允许在同一作用域内定义同名但参数列表不同的函数,提高代码灵活性和可读性,避免命名冲突。通过参数类型自动选择合适版本,如C++中的`print()`可处理整数、浮点数和字符串。虚函数实现运行时多态,基类指针调用时调用实际对象的版本。抽象类至少有一个纯虚函数,不能实例化,用于定义接口规范。抽象类和纯虚函数是构建多态和继承体系的基础,提供接口标准,减少代码冗余,增强代码清晰性和可维护性。
|
6月前
|
C++
【C++小小知识点】重载、覆盖(重写)、隐藏(重定义)的对比【详解】(23)
【C++小小知识点】重载、覆盖(重写)、隐藏(重定义)的对比【详解】(23)
|
6月前
|
Java 编译器
还没搞懂重写和重载吗?这篇文章可以帮助你
还没搞懂重写和重载吗?这篇文章可以帮助你
44 1
|
6月前
|
算法 编译器 程序员
成为C++重载大师:深入理解重载决议
成为C++重载大师:深入理解重载决议
78 0
|
11月前
|
Java 编译器
八股文-Java方法的重载与重写
在 Java 中,重载和重写是两个关键的面向对象编程概念。重载通过方法的参数列表不同来区分同名方法,提供了更灵活的方法调用方式。而重写通过子类重新定义父类中已经存在的方法,实现了多态性的体现,让代码更具可扩展性和维护性。
123 2
八股文-Java方法的重载与重写
|
6月前
|
C++
面试题:重写和重载的区别
面试题:重写和重载的区别
31 0
|
6月前
|
存储 缓存 Java
认真学习JVM的方法调用(方法重载和重写)
认真学习JVM的方法调用(方法重载和重写)
39 0
|
Java
【Java面向对象】方法重载,方法重写你还傻傻弄不清吗?
【Java面向对象】方法重载,方法重写你还傻傻弄不清吗?
88 0