본문 바로가기
Java/JAVA 문법

자바 기초 배우기 21일차 [ 내부클래스, 추상클래스 ]

by lchit 2020. 1. 4.

*17일~20일 차는 예제로만 진행되어

따로 업로드 하지않음.

1. 내부 클래스

2. 추상 클래스

1. 내부 클래스

정의: 클래스 내부에 선언된 클래스

목적: 코드의 복잡성을 줄이기 위함

장점: 외부에서 선언된 필드들을 내부에서

바로 사용이 가능하다.

위 예제 코드처럼

내부 클래스에서는 별도의 공간 할당 없이

외부 클래스 필드를 공유할 수 있다는 점이 있다.

2. 추상 클래스

정의: 추상 메서드가 하나 이상 존재하는 클래스

[ 추상 메서드?? ]

추상 메서드는 코드가 구현되어 있지 않은,

껍데기만 있는 메서드를 말한다

이 추상 메서드를 작성할 때는

앞에 ' abstract '라는 키워드를

붙여주며 구현 블록이 없는 것이 특징이다.

=

생성법

abstract int sum();

이건대 보는 바와 같이 abstract라는

키워드가 붙었고 f1이라는 함수명을

가지고 있는 정수형 함수다

그리고 실행할 작업 목록이 없다

이제 추상 클래스로 돌아와 보자

이 추상 클래스의 생성 방법은

1. 추상 메서드를 포함시키기

2. or 클래스 앞에 abstract 키워드 붙이기

두 가지 방법이다

그럼 이 추상 클래스는 어디에 사용될까?

이제 만들어진 추상 클래스를 [ 상속 ] 받는

다른 클래스를 만들어보자

MyInfo를 상속받는 Leechanho 클래스를 만드려고 하자

클래스 명에 오류가 발생한다

이 오류의 해결 방법으로는

이클립스에서 두 가지를 제안한다

1. 추상 클래스로 만들어라

2. 부모 클래스의(상속받는) 추상 메서드를

오버 라이딩(재정의) 하라

자동 오류 해결을 시켜보았다.

그러자 혼자 추상 메서드였던 메서드들을 불러와

각각 형태에 맞는 리턴 값이 있는 메서드로 오버 라이딩하였다

이 처럼

추상 메서드를 포함한 추상 클래스를 상속받을 시

상속받는 추상 메서드를 오버 라이딩하여 재정의 작업이

필요한 것이다.

*추상 클래스는 상속받을 자식 클래스에서의

자신에 대한 재정의 작업을 유도한다.