重载(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.重载时,方法的返回值类型可以不同,能够把返回值类型当做重载的区分标准。

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

全部评论

相关推荐

05-26 22:25
门头沟学院 Java
Java小肖:不会是想叫你过去把你打一顿吧,哈哈哈
点赞 评论 收藏
分享
投递腾讯等公司7个岗位
点赞 评论 收藏
分享
07-15 12:24
重庆大学 运营
坏消息:和好工作擦肩而过
给点吧求求了:怎么可能因为差几秒,估计就是简历更好看婉拒了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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