JAVA 方法重载和重写区别

一、方法的重载

1.概念(Overloading):方法名称相同,但是参数列表不同(即的类型和个数都不同),通过传递参数的不同来完成不同的功能

2.例子:

class Number{
	public void tell(int a,int b) {
		System.out.println(a+b); //输入两个个参数时相加输出
	} 
	public void tell(int a) {
		System.out.println(a); //输入一个参数时将该数输出
	} 
	
}

public class Overloading {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Number n =new Number();
		n.tell(2,2);//调用方法
		n.tell(1);//同名方法
		
	}

}
输出结果为4 1

 

二、方法的重写

1.概念:重写是指子类定义了和父类同名的方法,方法名称相同,返回值相同,参数也相同

2.例子:

class A{
	public void prt() {
		System.out.println("A的方法");
	}
}

class B extends A{
	public void prt() {
		System.out.println("我被重写了");//子类重写了prt()方法
		super.prt();//super关键字强行调用父类的prt()方法
	}
}

public class overriding {
	
	public static void main(String[] args) {
		B b=new B();
		b.prt();
	}

}
输出结果:
我被重写了
A的方法

3.限制:子类重写的方法不能比父类更加严格的访问权限

比如父类有一个public void tell() 方法,但是子类重写父类方法时,重写成private void tell() 那么这样是不行的

4.访问权限:private(作用域:类)    <       default(作用域:类、包)     <        piublic(整个工程)

 

三、总结

重载:

1.Overloading

2.名称相同,参数类型或个数不同

3.对权限无要求

4.发生在一个类中

 

重写:

1.Overriding

2.名称、参数类型、参数个数完全相同

3.重写的方法不能拥有比父类更严格的权限

4.发生在继承当中

 

你可能感兴趣的:(相似概念区分,JAVA入门)