JAVA之方法的重载与重写详解

本文详细介绍了Java中的方法重载和重写概念。重载发生在同一类中,允许方法名相同但参数列表不同,而重写发生在继承关系中,要求方法名和参数列表完全相同。通过代码示例展示了如何实现和调用这些方法,强调了返回值和访问修饰符在重载和重写中的不同规则。
摘要由CSDN通过智能技术生成

重载

定义: 在同一个类中的方法名相同参数列表不同的方法。
参数列表的不同包括参数的顺序、数量和类型,但与参数名称无关。
方法的返回值和访问修饰符任意都可以。

代码例子:

public class Test {
	

	public static void main(String[] args) {

		Test rldTest = new Test();

		// 分别调用无参的重载方法和带参的重载方法。
		rldTest.reloadTest();
		rldTest.reloadTest(3);

	}

	// 无参的重载方法。
	public void reloadTest() {

		System.out.println("我是无参的重载方法。");
	}

	// 带参的重载方法。
	public void reloadTest(int i) {

		System.out.println("我是带参的重载方法。");
	}
	
}

输出结果为:
重载代码例子的输出结果
输出结果显示根据传入参数的不同调用了方法名相同的不同方法。

重写

定义: 在有继承关系的子类中的方法名和参数列表都和父类中的方法相同的方法。
参数列表的相同包括参数的顺序、数量和类型,但与参数名称无关。
返回值如果是void或者基本数据类型时必须相同,可以是父类或其子类,子类不一定是当前子类也可以是父类的其它子类。

代码例子:

public class Subject {

	public String subjectName;
	public int subjectNum;
	public String subjectCategory;

	public void subjectMethod1() {

		System.out.println("这是父类的无返回值或基本数据类型方法输出。");

	}

	public Subject subjectMethod2() {
		Subject subjectTest = new Subject();

		System.out.println("这是父类的引用数据类型方法输出。");

		return subjectTest;
	}

}

public class Science extends Subject {

	public static void main(String[] args) {

		// 实例化子类对象。
		Science science = new Science();

		// 调用子类重写的方法。
		science.subjectMethod1();
		science.subjectMethod2();

	}

	// 重写父类的方法,父类无返回值,子类的方法也必须无返回值。
	public void subjectMethod1() {

		System.out.println("这是子类的无返回值或基本数据类型方法输出。");

	}

	// 重写父类的方法,父类的返回值是Subject对象,子类的返回值可以是这个对象也可以是父类的子类对象。
	public Science subjectMethod2() {

		Science science = new Science();

		System.out.println("这是子类的引用数据类型方法输出。");

		return science;
	}

}

输出结果为:
重写代码例子的输出结果
输出结果显示子类调用的是重写父类的方法。

注: 静态方法带static关键字不能被重写,在子类中写一个和父类方法名,参数列表都相同的方法并不是对父类方法的重写,而是新的子类方法,编译器不报错是认为这是子类对父类方法的隐藏。
父类中带abstract关键字的方法必须被重写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值