Java overload와 override의 차이점 분석

2278 단어 Javaoverloadoverride
메서드의 재작성(Overriding)과 재부팅(Overloading)은 자바 다태성의 다른 표현이다.다시 쓰기(Overriding)는 부류와 자류 간의 다태성을 나타내는 것이고, 다시 쓰기(Overloading)는 부류 중의 다태성을 나타내는 것이다.하위 클래스에 부모 클래스와 같은 이름과 파라미터를 정의하는 방법이 있다면, 이 방법은 다시 쓰기(Overriding)된다고 합니다.하위 클래스의 대상이 이 방법을 사용할 때 하위 클래스의 정의를 호출합니다. 하위 클래스의 정의는'차폐'된 것과 같습니다.한 클래스에 여러 개의 같은 이름의 방법이 정의되어 있거나, 매개 변수 개수가 다르거나, 매개 변수 유형이 다르거나, 매개 변수 순서가 다른 경우, 방법의 재부팅(Overloading)이라고 합니다.액세스 권한, 반환 형식, 던진 이상을 통해 다시 불러올 수 없습니다.1. 방법 재부팅(overload) 개념: 간단하게 말하면 방법 재부팅은 같은 기능의 다양한 실현 방식이다. 도대체 어떤 방식을 사용하는지는 호출자가 제시한 매개 변수에 달려 있다.주의사항: (1) 방법명이 같다 (2) 방법의 매개 변수 유형, 개수, 순서가 적어도 하나는 다르다. (3) 방법의 반환 유형은 다르다. (4) 방법의 수식자는 반환 유형만 다르다면 재부팅을 구성할 수 없다. 접근 수식 기호만 다르다면 재부팅을 구성할 수 없는 Overloaded를 구성하는 방법은 반환 값을 바꿀 수 있는 유형이다.2. 방법 덮어쓰기(override) 개념: 간단하게 말하자면 방법 덮어쓰기는 하위 클래스에 하나의 방법이 있다. 상위 클래스의 어떤 방법의 이름, 되돌아오는 유형, 파라미터와 같다. 그러면 하위 클래스의 이 방법이 상위 클래스의 그 방법을 덮어썼다고 하자.주의사항: 방법은 여러 가지 조건을 덮어씁니다. 전체적으로 말하자면 두 가지가 있습니다. 반드시 주의해야 합니다. (1) 하위 클래스의 방법의 반환 유형, 파라미터, 방법의 명칭, 상위 클래스의 반환 유형, 파라미터, 방법의 명칭과 똑같아야 합니다. 그렇지 않으면 컴파일이 잘못됩니다.(2) 하위 클래스 방법은 상위 클래스 방법의 접근 권한을 줄일 수 없습니다(반대로) 예: Override 실례
 
class A{
public int getVal(){
return(5);
}
}
class B extends A{
public int getVal(){
return(10);
}
}
public class override {
public static void main(String[] args) {
B b = new B();
A a= (A)b;// b A
int x=a.getVal();
System.out.println(x);
}
}
Overload
package com.guonan;
//Demostrate method voerloading.
class OverloadDemo {
void test(){
System.out.println("NO parameters");
}
void test(int a){
System.out.println("a:"+a);
}//end of Overload test for one integer parameter.
void test(int a, int b){
System.out.println("a and b:"+a+" "+b);
}
double test(double a){
System.out.println("double a:"+a);
return a*a;
}
}
class Overload{
public static void main(String[] args) {
OverloadDemo ob = new OverloadDemo();
double result;
ob.test();
ob.test(10);
ob.test(10, 20);
result = ob.test(123.25);
System.out.println("Result of ob.test(123.25):"+result);
}
}

좋은 웹페이지 즐겨찾기