码迷,mamicode.com
首页 > 其他好文 > 详细

方法重载和重写的区别

时间:2014-10-04 01:18:15      阅读:394      评论:0      收藏:0      [点我收藏+]

标签:des   blog   ar   java   sp   div   c   log   r   

方法重写(overriding):

  1、也叫子类的方法覆盖父类的方法,要求返回值、方法名和参数都相同。

  2、子类抛出的异常不能超过父类相应方法抛出的异常。(子类异常不能超出父类异常)

  3、子类方法的的访问级别不能低于父类相应方法的访问级别(子类访问级别不能低于父类访问级别)

方法重载(overloading):重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数,可以参考API帮助文档看看类的构造方法

 

/**
	方法重写(Overriding Method
 */
class OverridingMethod 
{
	public static void main(String[] args) 
	{
		HomeDog hd = new HomeDog("阿黄");
		hd.desc();
	}
}


//基类
class Dog
{
	protected String name;

	public Dog(String name){
		this.name = name;
	}

	protected void desc(){
		System.out.println("I‘m a dog");
	}
}


//子类
class HomeDog extends Dog
{
	public HomeDog(String name){
		super(name);
	}

	//重写父类的方法
	public void desc(){
		System.out.println("这是一只狗,它的名字是"+this.name);
	}
}

  输出结果为:这是一只狗,它的名字是阿黄

  可见,调用的是子类中的desc()方法,而不是父类的desc,这就是方法的重写

方法重载和重写的区别

标签:des   blog   ar   java   sp   div   c   log   r   

原文地址:http://www.cnblogs.com/qthomas/p/4005488.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!