KPlay의 코딩 그리고 잡동사니

클래스의 상속

2020. 10. 6. 00:05

상속이란 다른 클래스가 가지고있는 정보를 자신이 포함하겠다는 의미로

자식 클래스가 부모클래스의 변수나, 함수같은 인스턴스를 정의해주지 않아도 사용할 수 있는 문법이다.

가령, Person이라는 부모 클래스가 student클래스랑 teacher이라는 자식 클래스들로 나뉠 수 있다.

클래스의 인스턴스를 선언할때 보안상의 문제때문에 앞에서

private로 변수를 선언 해준 후 public get, set함수 선언을 해준다했는데 이게

JAVA의 거의 표준이기때문에 자동완성도 지원한다

변수를 private로 만든다음에

코드창에 마우스 우클릭 -> Source -> Generate Getters and Setters 를 입력하면

변수별로 각각 get함수와 set함수가 만들어진다

생성자 또한 자동완성이 있는데 생성자는 각 인스턴스를 만들때 값을 자동으로 초기화 해주는 변수라고 했었다.

마우스 우클릭 -> Source -> Generate cunstructor and using Field

Person이라는 클래스를 만들어주고 name, age, height, weight라는 4개의 변수를 만들어준다

또, 위에서 말한 단축키로 get, set 함수들과 생성자 또한 만들어준다

이제 Student라는 클래스가 Person클래스를 상속받아보겠다

상속을 받을때는 위와같이 extends 키워드 다음에 부모 클래스명을 쓴다

보면 Student 클래스는 name, age, height, weight 같은 변수는 선언해준적이 없는데

상속을 받았으므로 자동으로 생성자에 매개변수로 넣어져서 만들면 자동으로 초기화가 되고 쓸 수 있다.

super()라는 함수는 자신의 부모가 가지고 있는 생성자를 실행하겠다는 소리이다.

간단한 예제를 위해 show()라는 함수를 만들었다

Student 클래스 내에서 getName부터 getGPA까지 만들어준다

그리고 Main 클래스에 main함수를 만들어

Student클래스의 student라는 인스턴스를 만들고 Student클래스의 생산자에 각각 인자를 넣는다.

인스턴스명.함수명()을 해서 show함수를 출력하면 이렇게 나온다

보는대로 main함수는 엄청 짧고 간단해졌고 Class별로 나눠서 정리를 해놨기때문에 보기 편하다

이게 객체 지향 프로그래밍 언어의 기본이자 장점이다.

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band