다형성
IT 위키
더 많은 작업
- Polymorphism
- 상속되는 기능을 재정의하거나 하나의 인터페이스에 다양한 매소드를 정의하여 확장성, 유연성을 제공하는 객체지향 특징
- 많은 상이한 클래스들이 동일한 메서드명을 이용하는 능력
- 일반화된 객체는 어떤 특정 객체를 지칭할 수 있기 때문에 같은 동작을 하지만 다른 성질을 가질 수 없음
- 확장성: 하나의 인터페이스에 메서드를 type 및 개수를 변경하여 재정의
- 유연성: 하나의 인터페이스를 일관성있게 사용자 중심으로 제공
- 재사용성: Overloading, Overriding을 이용한 재사용성 높임
class Shape {
public void draw();
public void erase();
}
class Circle extends Shape{
int radius;
public void draw(); // Overriding
public void draw(int r); // Overloading
public void erase(); // Overriding
}
class Square extends Shape{
int s_line;
public void draw(); // Overriding
public void draw(int a, int b) ; // Overloading
public void erase(); // Overriding
}
class Triangle extends Shape{
int t_line;
public void draw(); // Overriding
public void draw(int line); // Overloading
public void erase(); // Overriding
}
Class RunTest{
public void main(){
Shape s1 = new Circle();
Shape s2 = new Square();
Shape s3 = new Triangle();
s1.draw(); // 원이 그려지고 - overriding
s2.draw(); // 사각형이 그려지고 - overriding
s3.draw(); // 삼각형이 그려지고 - overriding
}
}