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);
	    }

}
         其实当我写完这篇博客时,我觉得重载与重写其实在平时经常用,但是当真正让我去说他们的时候,我区分不清,根源就在没有做到思想上移,对于实践和理论并没有很好的结合,对于基础知识的重视程度并不是太高,所以在今后的学习中,对于这些基础知识点的学习还是必须滴~
相关文章
|
5月前
|
编译器 Linux C语言
18 C++ - 函数重载(overload)
18 C++ - 函数重载(overload)
45 0
|
30天前
|
存储 程序员 编译器
【C++ 模板类与虚函数】解析C++中的多态与泛型
【C++ 模板类与虚函数】解析C++中的多态与泛型
46 0
|
5月前
|
编译器
【多态-动态绑定-向上转型-抽象类】
【多态-动态绑定-向上转型-抽象类】
27 0
|
6月前
|
Java
1.6 方法重载
1.6 方法重载
18 0
|
6月前
|
编译器 程序员 C++
函数重载(function overloading)
函数重载(function overloading)是编程语言中一种支持多个同名函数的特性,这些函数在参数列表(参数类型和数量)上有所不同。当调用一个重载函数时,编译器会根据函数参数列表的具体情况进行匹配,然后调用相应的函数实现。
57 5
|
编译器
函数重载(方法重载)
函数重载(方法重载)
56 1
|
编译器 C#
C#的方法重载
C#的方法重载
72 0
方法重载
当方法名称相同,参数的类型或个数不同的时候就称为方法重载
50 0
方法重载
Java多态详解
Java多态详解
144 0