부모클래스를 그대로 사용하면 제약이 많으므로 부모클래스로부터 상속받은 매서드를 그대로 사용하지 않고 자신에게 맞게 변형해서 사용하는것이다.
객체지향의 개념에서 상속과 오버라이딩은 항상 따라다니므로 같이 이해하면 편하다.
아래와 같은 코딩을 통해 이해하자
package calss;
public class Result {
public static void main(String[] args) {
Multiply m1 = new Multiply();
m1.c1(10, 20);
m1.sum();
m1.Multiply();
}
}
class Calcultor{
int a;
int b;
public void c1(int a, int b) {
this.a = a;
this.b = b;
}
public void sum() {
System.out.println(a+b);
}
}
package calss;
class Multiply extends Calcultor{
public void sum() {
System.out.println("sum은 결과는 : " + a + b); // class Calcultor의 클레스를 상속받은후 오버로딩 했다.
}
public void Multiply() {
System.out.println(a*b);
}
}
이것의 실행값은
이며 class Calcultor의 sum()메소드가 아닌 class Multiply가 Calcultor 클레스를 상속받은 이후 오버라이딩한 결과값인
< sum은 결과는 : " + a + b > 가 출력된다.
오버로딩이란 상속받은 부모 클래스의 메소드 내용을 변경 및 수정해서 다시 사용하는것이다.
그러므로, 자손클래스는 부모블래스의 메소드 이름, 매개변수,리턴 타입이 같아야한다.
오버로딩 : 자식클레스가 부모클레스로부터 상속받은후 메소드 내용을 자신에게 맞게 변경후 사용하는것
오버로딩 (Overloading) (0) | 2020.09.15 |
---|---|
생성자 (Constructor) (0) | 2020.09.14 |
상속 (Inheritance) (0) | 2020.09.08 |
객체지향적인 언어 ( Object Oriented Programming - OOP) (0) | 2020.09.06 |
10. 배열 (Array) (0) | 2020.08.30 |