⭐️ 설계의 핵심 : 공통 기능은 부모 (클래스 또는 인터페이스)로 뺀다.
class Shape {
public void draw () {
System.out.println("도형을 그립니다.");
}
}
class Rectangle extends Shape {
@Override
public void draw() {
System.out.println("사각형을 그립니다.");
}
}
class Circle extends Shape {
public void draw() {
System.out.println("원을 그립니다.");
}
}
class Triangle extends Shape {
public void draw() {
System.out.println("삼각형을 그립니다.");
}
}
public class OverridingTest {
public static void main(String[] args) {
//1번
Shape shape = new Shape();
shape.draw();
//2번
Rectangle rec = new Rectangle();
rec.draw();
}
}
//result
도형을 그립니다.
사각형을 그립니다.
println
이 대표적인 오버로딩오버로딩 : 기존에 없는 새로운 메서드를 정의하는 것 (new)
오버라이딩 : 상속받은 메서드의 내용을 변경하는 것 (change, modify)