方法的重载与重写

1、重载

        重载是指方法的名称相同,但是参数不同。java中最典型的重载例子就是类的构造器的重载。

      怎样区分重载方法?每个重载的方法都必须有一个独一无二的参数列表。甚至参数的顺序不同也可以区分两个方法。不能以返回值来区分重载方法。因为有的方法根本不需要返回值。

public class OverLoadTest {
	private int i;
	private String str;

	public OverLoadTest() {
		
	}

	//构造器的重载
	public OverLoadTest(int i, String str) {
		this.i = i;
		this.str = str;
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		OverLoadTest olt = new OverLoadTest();
		olt.method();
		olt.method(10);//重载的带参数的方法
		System.out.println("==============分割线==========");
		OverLoadTest olt1 = new OverLoadTest(20,"dog");
		olt1.method();
		olt1.method(10);//重载的带参数的方法
	}

	public void method() {
		System.out.println("-----method");
	}
	//重载的方法
	public void method(int a) {
		System.out.println("-----method--i=" + i + ";str=" +str);
	}
}
2、重写(Overriding
    继承是所有OOP语言和Java语言不可缺少的组成部分。创建一个类时,总是在继承,因此,除非已明确指出要从其他类中继承,否则就是在隐式地从Java的标准根类Object进行继承。在进行继承时,子类会获取到基类中的所有非private方法。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。

    若子类中的方法与父类中的某一方法具有相同的 方法名返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。子类方法的访问修饰权限不能少于父类的。可以通过@Override这个注解来告诉虚拟机这个方法是重写而不是重载。子类还可以接着重载从父类继承的方法。
public class OverrideTest {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Son s = new Son();
		s.method();
		s.method("方法重写");
	}

	public void method() {
		System.out.println("-----father");
	}

}

class Son extends OverrideTest {
	@Override//通过这个注解来告诉虚拟机这个方法是重写而不是重载
	public void method() {
		super.method();//用super调用父类的方法。
		System.out.println("-----son");
	}
	//重写
	public void method(String str) {
		System.out.println("-----" + str);
	}
}

参考文章:

 http://www.cnblogs.com/bluestorm/archive/2012/03/01/2376236.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值