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.重载时,方法的返回值类型可以不同,能够把返回值类型当做重载的区分标准。
面试:重载和重写的区别:
 答:重载和重写都是事先多态的方式,重写实现了编译时的多态,重载实现了运行时的多态。重写发生在子类和父类之间,所以必须有两个类,他们之间是继承关系,子类对父类的方法进行重写,而重载发生在一个类中,对一个类可以有不用的参数列表,而不同的参数列表将会给类提供不同的处理方法,即为重载方法。

 京公网安备 11010502036488号
京公网安备 11010502036488号