class SuperSibal {
    public void melong1() {
        System.out.println("슈퍼시발 메롱1");
        this.melong2();
    }

    public void melong2() {
        System.out.println("슈퍼시발 메롱2");
    }
}

class SubSibal extends SuperSibal {
    @Override
    public void melong1() {
        System.out.println("서브시발 메롱1");
        super.melong1();
    }

    @Override
    public void melong2() {
        System.out.println("서브시발 메롱2");
    }
}

public class Sibal {
    public static void main(String[] args) {
        SubSibal mSubClass = new SubSibal();
        mSubClass.melong1();
    }
}


서브시발 메롱1
슈퍼시발 메롱1
슈퍼시발 메롱2


일줄 알았는데

결과는 아래처럼 막줄이 서브시발 메롱2로 나온다


서브시발 메롱1
슈퍼시발 메롱1
서브시발 메롱2