现在的位置: 首页 > 综合 > 正文

JavaSE视频学习阶段性总结 五(方法重写与方法重载的区别)

2013年07月19日 ⁄ 综合 ⁄ 共 1375字 ⁄ 字号 评论关闭

继承和多态都是面向对象程序设计的特点。使用继承可以在一个父类的基础上再创建一个子类,这个子类不但拥有父类已有的属性和方法,还可以创建属于自己的属性和方法。由于子类和父类之间的关系,从而引出了方法重写和方法重载的问题。方法重写及方法重载在继承和多态性方面的应用中会存在很多问题,这些概念很容易混淆, 掌握重写和重载的区别对学会使用多态的方式编写程序、提高程序的可维护性奠定了基础.

1.方法重写与方法重载之间的定义:

方法的重写(Override)是指子类中的方法与父类中继承的方法有完全相同的返回值类型、方法名、参数个数以及参数类型。

方法重载(Overload)是指在一个类中,多个方法的方法名相同,但是参数列表不同。参数列表不同指的是参数个数、参数类型或者参数的顺序不同。

2.方法重写与方法重载之间的区别:

1)重载发生在同一个类内部的两个或多个方法。重写发生在父类与子类之间。

2)Java用参数的类型和个数来决定实际调用的重载方法 。因此,每个重载方法的参数的类型或个数必须是不同。虽然每个重载方法可以有不同的返回类型,但返回类型并不足以区分所使用的是哪个方法;

3)重写方法时,父类方法的参数列表必须完全与被子类重写的方法的参数列表相同,则不能称其为重写而是重载。父类的返回类型必须与被子类重写的方法返回类型相同,否则不能称其为重写而是重载。Java中规定,被子类重写的方法不能拥有比父类方法更加严格的访问权限。访问权限大小关系为:private< protacted <public

3 .方法重写与方法重载之间的代码比较:

方法的重写(Override):

public class overRiding {
	public static void main(String[] args) {
		Human man =new Human();
		man.sleep();
		Man m =new Man();
		m.sleep();
	}
}
class Human{
	public void sleep(){
		System.out.println("父类Human的sleep方法");
	}
}

class Man extends Human{
	public void sleep(){
		System.out.println("子类man的sleep方法");
	}

}

输出结果 :
方法重载(Overload):

public class overLoad {
	public static void main(String[] args) {
		Person p =new Person();
		p.name="德玛西亚";
		p.age=18;
		p.print();
		p.print("流浪法师", 23);
	}
}

class Person{
	String name;
	int age;
	void print(){
		System.out.println("姓名:"+name+";年龄:"+age);
	}
	void print(String a,int b){
		System.out.println("姓名:"+a+";年龄:"+b);
	}
}

输出结果 :

4.总结:

杂谈:

最近总感觉时间不够使,我们既要上课,课下又要准备六级,还有软件设计师,再加上现在的javaSE学习。由于学习前期只顾看视频,没有跟上博客上对视知识的整理,现在只好停下视频进度,抽时间一天一篇前期的知识整理。希望这样可以巩固一下前期知识,尽快赶上视频进度。坚持!!!

抱歉!评论已关闭.