重载(overload)和重写(override)的区别(详细)

overload指的是方法重载
override指的是方法重写
画了一个很简单的UML类图给大家解释一下重写重载

package overloadAndoverride;

public class Person {

	private int age;
	private String name ;
	public void eat() 
	{
		System.out.println("人类的吃饭方法");
	}
}

package overloadAndoverride;

public class Student extends Person {

	public void eat() {
		
		System.out.println("从人类继承而来的吃饭方法");		
	}
	public void eat(String name) {
		System.out.println("从人类继承而来的吃饭方法,学生吃了"+name);	
	}
}

测试类

package overloadAndoverride;

public class TestOverloadAndOverride {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根

		Person per1 = new Person();
		per1.eat();
		Student stu1 =  new Student();
		stu1.eat();
		stu1.eat("大白菜");
	}

}

输出

总结:
重写总结
重写是发生在子类和父类之间的,或者换句来说重写发生在继承的时候,子类可以重写父类的方法,让父类的方法更适合子类的特点,这也是体现多态的一个方面,权限

重载总结
1.重载发生在一个类中,是因为参数列表不同导致的多态性。
(参数列表不同,参数的;类型、顺序、数目任一不同,或者多个不同)
2.重载时,方法的返回值类型可以不同,能够把返回值类型当做重载的区分标准。

面试:重载和重写的区别:
答:重载和重写都是事先多态的方式,重写实现了编译时的多态,重载实现了运行时的多态。重写发生在子类和父类之间,所以必须有两个类,他们之间是继承关系,子类对父类的方法进行重写,而重载发生在一个类中,对一个类可以有不用的参数列表,而不同的参数列表将会给类提供不同的处理方法,即为重载方法。

全部评论

相关推荐

有没有佬投这个呀,怎么样呀求问
投递中科院空天信息创新研究院等公司10个岗位
点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务