方法重载和重写的区别

方法重写(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,这就是方法的重写

时间: 2024-08-05 07:05:48

方法重载和重写的区别的相关文章

java基础疑难点总结之成员变量的继承,方法重载与重写的区别,多态与动态绑定

1.成员变量的继承 1.1要点 子类用extends关键字继承父类.子类中可以提供新的方法覆盖父类中的方法.子类中的方法不能直接访问父类中的私有域,子类可以用super关键字调用父类中的方法.在子类中可以增加域,增加方法或者覆盖超类的方法,然而绝对不能删除继承的任何域和方法. 在一个子类被创建的时候,首先会在内存中创建一个父类对象,然后在父类对象外部放上子类独有的属性,两者合起来形成一个子类的对象.所以所谓的继承使子类拥有父类所有的属性和方法其实可以这样理解,子类对象确实拥有父类对象中所有的属性

方法重载与重写的区别

重载(Overloading) 在一个类中的多个方法 有相同的方法名 参数不同(个数或对应位置的类型) 与访问修饰符和返回值类型无关 重写(Overrriding) 在继承的子类中相对父类的方法 返回值类型相同 方法名相同 参数相同 不能缩小访问权限 原文地址:https://www.cnblogs.com/MrWuNotebook/p/10146091.html

【面试题】方法的重载与重写的区别?

方法的重写(override orverwrite) vs 重载(overload) [面试题]方法的重载与重写的区别? 重载:"两同一不同":同一个类,同一个方法名,不同的参数列表. 注:方法的重载与方法的返回值无关! >构造器是可以重载的 重写:(前提:在继承的基础之上,子类在获取了父类的结构以后,可以对父类中同名的方法进行"重构") 方法的返回值,方法名,形参列表形同:权限修饰符不小于父类的同名方法:子类方法的异常类型不大于父类的: 两个方法要同为sta

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

ava中重载与重写的区别 首先我们来讲讲:重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义. 调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性. (3) 重载的时候,方法名要一样,但是参数类型和个数不一样,

重载和重写的区别

java中重载与重写的区别 首先我们来讲讲:重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义. 调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性. (3) 重载的时候,方法名要一样,但是参数类型和个数不一样

Java的重载和重写的区别

今天做题一脸蒙:原以为理解的挺深的,看来不仅要学会,换药灵活运用.以下是搜集整理的重载和重写的区别: 1.首先是书写:重载英文为overload  ,重写为 override . 2.然后是定义: (1)重载的定义是:方法名相同,参数类型不同或参数个数不同或参数顺序不同,就可以构成重载.这里注意没有规定方法返回值和修饰符,防止陷阱奥. (2)重写(又叫覆盖或复写):方法名相同,返回值类型相同,参数列表相同.  这里注意没有规定修饰符奥. 3.权限:   重载对权限没有要求: 重写的权限是:被子类

java 子类方法重载和重写区别

方法重写: * Override和Overload的区别?Overload能改变返回值类型吗? * overload可以改变返回值类型,只看参数列表 * 方法重写:子类中出现了和父类中方法声明一模一样的方法.与返回值类型有关,返回值是一致(或者是子父类)的 * 方法重载:本类中出现的方法名一样,参数列表不同的方法.与返回值类型无关. * 子类对象调用方法的时候: * 先找子类本身,再找父类.

java中方法的重载与重写的区别

JAVA中方法的重载与重写 1)  方法的的参数上看:重载后的方法与源方法在参数的类型以参数列表的顺序上会发生改变,而重写后的方法在参数的数据类型与参数列表的顺序不会发生改变 2)原方法是否对被覆盖:重载后的方法不会覆盖原方法,而重写后的方法会覆盖父类中的方法,调用时也只会调用重写后的方法. 3)调用方法的对象上:重载后的方法被调用时,调用对象不同时,调用的方法不同,产生的结果也不同:而重写后的方法被调用时,无论调用的对象是父类或者子类的对象,调用的方法相同,产生的结果也一样

重载与重写的区别

首先我们来讲讲:重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义. 调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性. (3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不