Overloading And Overriding

简介:

          最近在技术分享的时候,说到了一个小点,重写和重载,顿时感觉自己基础忒差,于是拿出这两个词,再一次温习一下,总是区分不开,加上一直在学习java,所以就用java来写一些小例子。

        重载(overloading)

         重载用一句话总结就是:充分体现多态,函数名相同,参数不同,返回值不做要求。

         例子:

         

package overloading;

public class Dog {
	Dog(){
		
		
	}
	void Bark(){
		System.out.println("no barking");
		this.Bark("female",3.4);
	}
	void Bark(String m,double d){
		System.out.println("a barking dog");
		this.Bark(5,"china");
	}
	void Bark(int a,String n){
		System.out.println("a howling dog");
	}
	
	public static void main(String[] args) {
		Dog dog=new Dog();
		//多态
		dog.Bark();
		dog.Bark(2, "sdfsd");
		dog.Bark("sdf",2.2);
	}
}
         重写(overriding)

        重写最重要的是子类继承父类,并可以在不改变父类方法名、参数、返回值的情况下进行重写,也叫方法覆盖。

        紧接上面的例子:          

package overloading;

public class subDog extends Dog {

	@Override
	void Bark() {
		<span style="color:#ff0000;">int i;
		System.out.println("重写父类方法");</span>
	}

	@Override
	void Bark(String m, double d) {
		// overriding
		super.Bark(m, d);
	}

	@Override
	void Bark(int a, String n) {
		// overriding
		super.Bark(a, n);
	}
	
	 public static void main(String[]agrs)
	    {
		 	Dog dog=new subDog();
		 	dog.Bark();//重写方法
		 	dog.Bark(5, "sdfsd");
		 	dog.Bark("df", 2.52);
	    }

}
         其实当我写完这篇博客时,我觉得重载与重写其实在平时经常用,但是当真正让我去说他们的时候,我区分不清,根源就在没有做到思想上移,对于实践和理论并没有很好的结合,对于基础知识的重视程度并不是太高,所以在今后的学习中,对于这些基础知识点的学习还是必须滴~
相关文章
|
编译器 Linux C语言
18 C++ - 函数重载(overload)
18 C++ - 函数重载(overload)
99 0
|
7月前
|
程序员 编译器 C++
C++中的运算符重载(Operator Overloading)
C++中的运算符重载(Operator Overloading)
62 1
|
7月前
|
程序员 编译器 C++
C++中的函数重载(Function Overloading)
C++中的函数重载(Function Overloading)
81 2
|
7月前
|
编译器 C++
【C++】类与对象(static、explicit、友元、隐式类型转换、内部类、匿名对象)
【C++】类与对象(static、explicit、友元、隐式类型转换、内部类、匿名对象)
36 2
|
6月前
|
算法 编译器 C++
C++多态与虚拟:函数重载(Function Overloading)
重载(Overloading)是C++中的一个特性,允许不同函数实体共享同一名称但通过参数差异来区分。例如,在类`CPoint`中,有两个成员函数`x()`,一个返回`float`,另一个是设置`float`值。通过函数重载,我们可以为不同数据类型(如`int`、`float`、`double`)定义同名函数`Add`,编译器会根据传入参数自动选择正确实现。不过,仅返回类型不同而参数相同的函数不能重载,这在编译时会导致错误。重载适用于成员和全局函数,而模板是另一种处理类型多样性的方式,将在后续讨论中介绍。
|
编译器 程序员 C++
函数重载(function overloading)
函数重载(function overloading)是编程语言中一种支持多个同名函数的特性,这些函数在参数列表(参数类型和数量)上有所不同。当调用一个重载函数时,编译器会根据函数参数列表的具体情况进行匹配,然后调用相应的函数实现。
112 5
4.【拷贝构造函数与重载】
4.【拷贝构造函数与重载】
41 1
|
Java
1.6 方法重载
1.6 方法重载
47 0
|
C++
C++ 中的多态性(Polymorphism)
C++ 中的多态性(Polymorphism)
82 0
|
编译器
函数重载(方法重载)
函数重载(方法重载)
71 1