상위 클래스의 "static" 멤버는 파생 클래스를 통해 접근해선 안됩니다

 

코드의 명확성을 지키기 위해 상위 클래스의 static 멤버에 접근할 때는 파생 클래스를 통해 접근해선 안됩니다. 이렇게 하는 것은 사용자를 혼란스럽게 만들고 두 개의 다른 static 멤버가 존재하는 것 같이 느껴지게 만듭니다.

규칙을 어긴 코드

class Parent {
  public static int counter;
}

class Child extends Parent {
  public Child() {
    Child.counter++;  // 규칙을 어긴 코드
  }
}

규칙을 준수한 해결책

class Parent {
  public static int counter;
}

class Child extends Parent {
  public Child() {
    Parent.counter++;
  }
}

If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project