본문 바로가기
IT/Java

자바 super 알아보기

by flatsun 2019. 1. 20.
반응형


저번에 this에 대해서 했는데

this란 파라미터 이름이 클래스 내에 정의한 변수명과 똑같아서

구별하기 어려울 경우 this를 붙여 클래스 내의 변수를 식별할 수 있었다


super 또한 this와 크게 다르지 않은데

this가 클래스 내에서 정의한 내용을 지정한다면

super는 상속받은 클래스의 변수와 메소드를 지정한다


즉 현재 사용하는 클래스가 아닌

상속받은 부모의 변수와 메소드를 가져온다는 것이다!!


테스트를 위해 Parent 클래스를 만들었는데

여기에는 메인 메소드를 만들지 않고


부모임을 표기하는 변수와 메소드만 넣어놓도록 하고

Child 클래스를 만들어 보자



Child 클래스를 만든 뒤에 extends Parent를 통해

부모 메소드를 상속을 받았다


이제 super를 통해 부모 클래스의 변수와 메소드를 가져올 수 있는데

예제처럼 super.변수명 으로 변수를 가져오고

super.메소드명() 으로 메소드를 가져온다


이 경우에는 부모 메소드를 호출하고 부모 변수의 값도 가져와본 후

호출을 해 보자




호출을 하고 보니

super를 통해 부모 메소드를 호출하고

이후에 자식 메소드를 한번 출력한 후

Parent 클래스의 name 변수를 받아서 넣은 ParentName을 호출했다


이제 super가 대략 감이 올 텐데

super는 특정 클래스에서 상속을 받았을 시

상속받은 클래스의 변수 및 메소드를 super.을 통해 가져올 수 있다


this는 현재 클래스의 내용을 가져오고

super는 상속받은 클래스의 내용을 가져오니


식별을 꼭 할 수 있어야 한다


그리고 super에 ctrl을 누르고 왼쪽 마우스 클릭을 하면

메소드 같은 경우에는 어느 클래스의 메소드를 가져오는지 바로 이동이 된다


그래서 super 경로가 감이 안오면 super.에 ctrl+왼클릭을 통해 어디서 오는지 알 수 있다




반응형

'IT > Java' 카테고리의 다른 글

자바 오버로딩(Overloading) 알아보기  (0) 2019.01.22
자바 오버라이드(Override) 알아보기  (1) 2019.01.21
자바 상속 알아보기  (0) 2019.01.20
자바 this 알아보기  (0) 2019.01.19
자바 가변 배열 알아보기  (0) 2019.01.17

댓글