1/28 오버라이딩

이 글은 2019년 홍익대학교 자바 겨울 특강 수업을 메모한 것이다.

당시에는 에버노트에 메모해놨었기 때문에,

티스토리 블로그를 시작하면서 백업해둔다.


 

package chapter7;
//메소드 오버라이딩
//부모클래스를 자식클래스가 상속받아 멤버 메소드를 재정의
//
//메소드 오버라이딩 규칙
//1. 부모 클래스의 메소드와 완전히 동일하게 선언
//2. 오버라이딩한 메소드도 오버로딩 가능
//오버로딩은 상속관계에서 일어나지 않고
//오버라이딩은 상속관계에서만 일어난다. 그것도 자식 클래스에서만 일어난다.
class car {
    int speed;
    int wheel;
    String carname;
    
    car() {
        
    }
    
    void speedup() {
        speed++;
    }
    
    void speeddown() {
        speed--;
    }
    
    void stop() {
        speed = 0;
    }
}
class truck extends car {
    void speedup() { //오버로딩과 다르게 아규먼트 없이 그대로 써도 충돌이 안난다
        speed += 2;
    }
    
    void speedup(int speed) { //오버라이딩 된 것도 오버로딩을 할 수 있다
        this.speed += speed;
    }
}
public class overriding {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        car mycar = new car();
        mycar.speedup();
        System.out.println(mycar.speed);
        
        truck mytruck = new truck();
        
        mytruck.speedup();
        System.out.println(mytruck.speed);
        
        mytruck.speedup(10);
        System.out.println(mytruck.speed);
    }
}

'┝ 개발 언어 > ┎ JAVA' 카테고리의 다른 글

2/1 추상클래스  (0) 2022.03.01
1/28 super  (0) 2022.03.01
1/28 상속  (0) 2022.03.01
1/30 접근제어자 private  (0) 2022.03.01
1/28 클래스 변수와 인스턴스 변수  (0) 2022.03.01