본문 바로가기
study/JAVA

자바 상속 inheritance 기초

by stilinski 2022. 4. 4.
728x90

상속 : 다른 클래스가 가지고 있는 멤버들을 새로 만들 클래스에서 직접 만들지 않고

상속을 받음으로써 새 클래스가 자신의 멤버처럼 사용할 수 있게 만든 기술

 

 

  • 상속(inheritance)
    • 기본 클래스를 재사용해서 새로운 클래스를 정의하는 것이다.
    • 두 클래스를 조상과 자손 관계를 맺어준다. (extends)
    • 상속을 해주는 클래스 : 수퍼클래스(super), 부모클래스, 기본클래스
    • 상속을 받는 클래스 : 서브클래스, 자식클래스, 유도클래스
    • 자식(손)클래스는 조상의 모든 자원을 상속받는다.
    • (생성자, static{}은 제외)
    • 자식(손)의 자원은 부모보다 크거나 같아야 한다.
    • 상속을 할때 사용되는 키워드 : extends(단일상속)

 

 

 

사실 오브젝트가 최 상위. 생략되어있음

모든 클래스는 오브젝트를 상속을 받는다.

 

 

 

무조건 다 상속이 가능한 거는 아님

패키지가 같으니까 가능

defaul protected public만 가능

같은패키지, default(생략)이라서 상속 가능

 

 

 

 

 

a는 father 클래스에있는 값인데 child가 fater상속을 받으니 child로 a를 불러도 잘 출력 됨.

 

father child - is a 관계

 

 

 

 

 

 

부모클래스 호출 super()

super

  1. 자식클래스에서 조상클래스를 호출할 때 사용한다.
  2. super.멤버변수        super.메소드           super() =>생성자

상속관계에있을때 자식클래스에있는 생성자는 부모클래스에있는 생성자를 호출해야함.

 

부모클래스의 인자값이없는 생성자 호출

super();

근데 안쓰면 알아서 호출 됨. 굳이 안써도 됨

 

 

 

부모클래스에 인자값이 없는 생성자가 없을시 부모클래스에 있는 생성자타입에 맞게 super에 인자 넣어서 하면 됨.

ex) super(10,30);

 

 

ㅋㅋㅋㅋ 이때 super(); 알아서 생성되는 거 몰랐음

 

 

 

 

 

 

 

 

 

메모리구조

 

 

 

728x90

댓글