Java重载(Overload)与重写(Override)

Posted 黄大管的保护区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java重载(Overload)与重写(Override)相关的知识,希望对你有一定的参考价值。

方法的语法

修饰符 返回值类型 方法名(参数类型 参数名){
    ...
    方法体
    ...
    return 返回值;
}

 

重载(overload)

/**
 * 重载Overload:
 * 同一个类中,多个方法拥有相同的名字,但参数类型以及参数数量必须不一样。
 * 返回值可相同也可不相同,但单凭返回值不可用来判断方法之间是否存在。
 */
public class example {
	public void print() {};
	//public String print() {}; 参数类型与上一条方法一样,返回值不同,无法通过编译
	public void print(int a) {};
	public void print(String a) {};
}

 

 重写Override

/**
 * 1. 重写方法只能存在于父子类间,父子类间的这个方法的参数列表、返回类型必须完全相同
 * 2. 重写的方法中,子类的权限修饰符必须>=父类的
 * 3. 父类的方法为private时,子类出现同名方法不属于方法的改写,只是在子类内部重新定义的一个方法
 * 4. 重写方法中,子类抛出的异常需要小于等于父类抛出的异常
 *
 */
class animal{
	int num;
	public void eat() {
		System.out.println("fruits");
	};
	private void run() {
		System.out.println("run");
	}
	public void count() throws IOException {}
}

class lion extends animal{
	public void eat() {//属于改写
		System.out.println("meat");
	}
	public void run() {//不属于改写
		System.out.println("jump");
	}
	//public void count() throws ClassNotFoundException {}; 不能抛出父类方法中没有的异常
	public void count() throws IOException {} //子类抛出的异常可与父类相同的异常或子异常
}

 

 参考:

https://www.cnblogs.com/jenkinschan/p/5847470.html

以上是关于Java重载(Overload)与重写(Override)的主要内容,如果未能解决你的问题,请参考以下文章

Java 重写(Override)与重载(Overload)

Java中的Overload(重载)与Override(重写覆盖)

Java重载(Overload)与重写(Override)

Java 重写(Override)与重载(Overload)区别

Java 重写(Override)与重载(Overload)

Java 重写(Override)与重载(Overload)