옝옹
냠
옝옹
전체 방문자
오늘
어제
  • 분류 전체보기 (84)
    • [LG유플러스]유레카 SW (5)
    • React (20)
    • JS (17)
    • TypeScript (5)
    • CSS & HTML (1)
    • 알고리즘 (11)
    • JAVA (20)
    • GIT (1)
    • 자격증 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 타입스크립트
  • 혼자공부하는자바
  • reduce
  • useCallback
  • reverse() 메서드
  • 코드스플리팅
  • map() 함수
  • 노마드코더
  • 리액트를다루는기술
  • 기본api클래스
  • sort() 메서드
  • 템플릿리터럴
  • 혼자 공부하는 자바
  • ==
  • break문
  • do-while문
  • match()
  • useState
  • switch문
  • toFixed
  • join()
  • 함수선언
  • map
  • template literal
  • js
  • useRef
  • 자바스크립트
  • java.lang패키지
  • 자바스트립트
  • 백준
  • 자바
  • continue문
  • fillter
  • indexOf()
  • useMemo
  • 타입변환
  • 리액트
  • JavaScript
  • 변수선언
  • join() 메서드
  • Node.js
  • 정적멤버
  • java
  • 인스턴스멤버
  • While문
  • 화살표함수
  • java.util패키지
  • useEffect
  • 접근제한자
  • TypeScript

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
옝옹

냠

추상 클래스
JAVA

추상 클래스

2022. 10. 31. 17:45

추상 클래스

 Bird.class, Insect.class, Fish.class 등의 실체 클래스에서 공통되는 필드와 메소드를 따로 선언한 Animal.class 클래스를 추상 클래스라고 한다.

추상 클래스의 용도

  • 공통된 필드와 메소드의 이름을 통일할 목적
  • 실체 클래스를 작성할 때 시간 절약
    • 공통적 인 필드와 메소드는 추상 클래스인 Phone에 모두 선언해두고, 다른 점만 실체 클래스에 선언하면 실체 클래스를 작성하는 데 시간을 절약할 수 있다.

추상 클래스 선언

  • 추상 클래스를 선언할 때에는 클래스 선언에 abstract 키워드를 붙여야 한다.
  • abstract를 붙이면 new 연산자를 이용해서 객체를 만들지 못하고, 상속을 통해 자식 클래스만 만들 수 있다.
public abstract class 클래스 {
    //필드
    //생성자
    //메소드
}

추상 메소드와 재정의

  • 메소드의 선언만 통일하고, 실행 내용은 실체 클래스마다 달라야 하는 경우 추상 클래스는 추상 메소드를 선언 가능
  • 추상 메소드를 선언하는 방법 ↓
[public ! protected] abstract 리턴타입 메소드이름(매개변수, …);
  • 하위 클래스가 반드시 실행 내용을 채우도록 강제하고 싶은 메소드가 있을 경우 해당 메소드를 추상 메소드로 선언
  • (ex) 어떤 소리를 내는지는 결정할 수 없지만 동물은 소리를 낸다는 공통적인 특징을 규정하기 위해  sound() 메소드를 추상 메소드로 선언
public abstract class Animal { 
	public abstract void sound();
}

 

확인 문제

1. 추상클래스에 대한설명입니다. 맞는 것에 o표, 틀린 것에 x표 하세요.
① 추상 클래스는 직접 new 연산자로 객체를 생성할 수 없다. ( O )
② 추상 클래스는 부모 클래스로만 사용된다. ( O )
③ 추상 클래스는 실체 클래스들의 공통된 특성(필드, 메소드)으로 구성된 클래스이다. ( O )
④ 추상 클래스에는 최소한 하나의 추상 메소드가 있어야 한다. ( X )


2. 추상 메소드에 대한 설명입니다. 맞는 것에 o표, 틀린 것에 x표 하세요.
① 추상 메소드는 선언부만 있고, 실행 블록을 가지 지 않는다. ( O )
② 추상 메소드는 자식 클래스에서 재정의해서 실행 내용을 결정해야 한다.( O )
③ 추상 메소드를 재정의하지 않으면 자식 클래스도 추상 클래스가 되어야 한다. ( O )
④ 추상 메소드가 있더 라도 해당 클래스가 꼭 추상 클래스가 될 필요는 없다. ( X )

 

3. 다음 클래스를 실행하면 “로그인 합니다.”, “파일 다운로드 합니다.”가 차례대로 출력되도록 LoginServlet 과 FileDownloadServlet 클래스를 선언해보세요.

package CH07.test03;

public class LoginServlet extends HttpServlet {
    @Override
    public void service() {
    	System, out. print In ("로그인 합니다.");
    }
}
package CH07.test03;

public class FileDownloadServlet extends HttpServlet {
    ©Override
    public void service() {
    	System.out.println("파일 다운로드 합니다.");
    }
}
저작자표시 비영리 변경금지 (새창열림)

'JAVA' 카테고리의 다른 글

타입 변환과 다형성  (1) 2022.11.09
인터페이스  (1) 2022.11.09
타입 변환과 다형성  (1) 2022.10.31
상속  (1) 2022.10.31
패키지와 접근 제한자  (0) 2022.10.13
    'JAVA' 카테고리의 다른 글
    • 타입 변환과 다형성
    • 인터페이스
    • 타입 변환과 다형성
    • 상속
    옝옹
    옝옹

    티스토리툴바