자바에서 메소드 재 작성과 오버로딩의 차이점

 

메서드 다시 쓰기
메서드 다시 쓰기는 런타임 중에 발생하며 하위 클래스는 부모 클래스에서 메서드의 내부 논리를 재구성하며 외부 정의를 변경할 수 없습니다.
기능
1 : 메서드 다시 쓰기는 하위 클래스에서 발생합니다
.2 : 다시 쓰기 메서드에 의해 전달 된 매개 변수는 부모 클래스의 매개 변수와 일치해야합니다
.3 : 반환 값 유형, 메서드 이름은 부모 클래스와 일치해야합니다. 예외의 범위가 부모 클래스보다 작고 액세스 수정자가 부모 클래스보다 더 큰 권한을 갖습니다
.4 : 부모 클래스 메서드의 액세스 수정자가 (private / final / static)이면 하위 클래스 메서드를 재정의 할 수 없습니다.
5 : 부모 클래스 생성 방법은 서브 클래스에 의해 재정의 될 수 없습니다.

public class Test{
	public static void main(String[] args) {
		DemoSon demoson=new DemoSon();
		//调用DemoSon类中的dosth()方法
		demoson.dosth(); //输出:DemoSon子类重写的Demo父类的dosth()方法
		Demo1 demo1=new Demo1();
		//直接调用父类Demo的dosth()方法
		demo1.dosth();//输出:Demo父类的方法
	}
}
class Demo{
	public void dosth(){
		System.out.println("Demo父类的方法");
	} 
}
class DemoSon extends Demo{
	public void dosth(){//实现Demo类中dosth()方法的重写
		System.out.println("DemoSon子类重写的Demo父类的dosth()方法");
	} 	
}
class Demo1 extends Demo{
}

메서드 오버로딩
컴파일 과정에서 메서드 오버로딩이 발생하며 같은 클래스에서 동일한 이름을 가진 여러 메서드가 입력 매개 변수에 따라 다른 논리적 처리를 수행합니다.
기능
1 : 메서드 오버로딩은 동일한 클래스에 있어야합니다
.2 : 메서드 매개 변수 목록은 일관성이 없어야합니다 (일관되지 않은 유형 \ 번호 \ 일관되지 않은 순서)
.3 : 메서드 반환 값과 액세스 수정자는 다를 수 있습니다
.4 : 생성 방법은 다음과 같을 수 있습니다. 과부하

/*
*	Dome类中实现了dosth()方法的三次重载
*/
public class Dome{
	public void dosth(){
		System.out.ptinln("没有参数的dosth()方法");
	}
	public void dosth(int n){
		System.out.ptinln("一个int类型的参数的dosth()方法");
	}
	public void dosth(int n,String str){
		System.out.ptinln("一个int类型的参数和一个String类型参数的dosth()方法");
	}
}

추천

출처blog.csdn.net/weixin_51980491/article/details/112724938