접근제한자

 - 다른 class 에서 class 또는 class 멤버의 접근을 허용할지를 결정한다.

  > public      : 모든 class 에서 접근이 가능하다.

     protected: 같은 package, 상속받은  하위 class 에서 접근이 가능하다.

     default     : 같은 package 내에서만 접근이 가능하다.

     private     : class 안에서만 접근이 가능하고, 외부에서는 접근할 수 없다.

 

 

   

                       class 내부       같은 package   하위 class  다른 package

  public                O                         O                   O                    O

  protected          O                         O                   O                    X

  default               O                         O                   X                     X

  private               O                         X                    X                     X

 


 상속 ( inheritance)

 - 기존 class 의 내용을 그대로 가져와서 새로운  class를 정의하는 것. (부모가 자식한테 물려주듯 class를 물려준다.)

 - 상속을 하더라도 접근제한자는 유지 된다.

 - 자식클래스 객체를 생성할 때, 자식클래스 생성자에서 super()를 사용하여 부모클래스의 생성자를 먼저 실행하고,

    자식클래스의 생성자를 실행한다.!!!

 

부모클래스는 상위클래스라고도 하며, 자식클래스는 하위클래스,파생클래스라고 부른다.


 상속을 하는 이유는??

이미 잘 개발된 클래스를 사용해서 새로운 클래스를 만드는 거라 코드의 중복을 줄여준다.

중복되는 코드의 클래스를 작성할 때 추가작성하는 것 보다 효율적이고 개발 시간을 줄여준다.


  상속 방법 (extends 부모클래스명)

  - class 자식클래스(하위클래스) extends 부모클래스 {

      }

 

 - 부모클래스가 먼저 실행된다. (시작 타입 내 타입이 아닌 부모타입이다.)

 - 다중으로는 상속이 안되며 단 하나의 부모 클래스만 와야한다. 

현재 ArticleFile class에서 Article class를 상속받게함

 

 

모든 객체는 생성자를 호출해야만 생성이 된다.

super(); 

- 부모의 기본생성자를 호출한다.

- 반드시 자식생성자의 첫줄에 위치한다.

 

super(매개값);

매개값의 타입과 일치하는 부모생성자를 호출한다!!

만약 매개값 타입이 일치하지 않으면 오류가 발생한다.

 


 

 

A class,B class,Test class 세개의 클래스를 만들어서 B클래스에 A클래스를 상속받아 Test(출력)해보는 연습을 통해 더욱 쉽게 내용이 정리가 되는 것 같았다.