gRac
30
2019-01-31 00:34:38
2
400

안드로이드(자바) 관한 질문!


안드로이드 개발을 하다가 로직이 이해가 안되는게 있어서 질문을 드립니다..ㅠ

public class BaseActivity extends AppCompatActivity {

  @Override

  protected void onCretate(...) {

      init();

  }

  public void init() {}; // 내용없음.

}

---------------------------------------------------

class B extends BaseActivity {

  @Override 

  public void init() {

  super.init();

  ... 

  }

}

---------------------------------------------------

class SplashActivity extends B {

  @Override 

  public void init() {

  super.init();

  ... 

  }

}


현재 간단하게 이런 구조인데 제가 생각하기에는

BasedActivity onCreate함수에서 init() 호출할 경우 

해당 클래스 init() 함수를 부를 꺼라 생각했는데

SplashActivity에 있는 init()을 호출하는거 같은데 왜 그런건지 이해가 안되네요..ㅠ


참고로 manifests파일에 첫시작 액티비티 이름이 SplashActivity 입니다!

0
  • 답변 2

  • Deer Hunter
    328
    2019-01-31 03:10:22

    실행 시 SplashActivity내에  선언된 init method 가 BasedActivity의 init method를 overriding 하여, SplashActivity의 init method 가 호출되는 것입니다.

  • gRac
    30
    2019-01-31 08:40:46

    아..  저는 Splashactivity가 B클래스를 상속받아서 B클래스 init메소드를 오버라이드한줄알았는데 그게아닌건가요..?

  • 로그인을 하시면 답변 을 등록할 수 있습니다.