package king;

class King extends Prr implements Aaa{
    void aa(){
        System.out.println(a);  //에러 : 변수 a가 어디 a인지 모르겠다네요.
    }
    public static void main(String[] arr){
        King k = new King();
        k.aa();
        Prr p = k;
        p.aa();
        
    }
}

class Prr{
    public int a = 10;
    void aa(){
        System.out.println(a);
    }
}

interface Aaa{
    public static final int a = 30;
    public abstract void aa();
}

다중상속의 조상 클래스 2개가 똑같은 메소드 이름과 매개변수를 가지는 경우의 충돌때문에.
단일상속으로 만들고 인터페이스로 보완한다인데... 메소드 겹치는 상황은 오버라이딩으로
때울만 했겠지만 그 둘의 지역변수가 그 둘 각자의 틀 안에 똑같은 이름이라면?
과연 최하위 클래스에서 그 메소드만 오버라이딩하면서 변수 a를 쓰면 상위클래스 멤버변수 
a를 가져다 쓸까 아니면 인터페이스 클래스변수 a를 가져다 쓸까?
컴파일 해보니 이 a가 문제라 컴파일이 안된다네요...
역시 자바는 완벽하지 않다.