티스토리 뷰
[java 22강] 추상 클레스 (Abstract Class)
이번 강좌에서는 추상 클레스에대해서 알아보겠습니다.
추상 클레스도 우선 클래스의 종류입니다.
추상 클레스도 상속을 위해 많이 사용합니다.
그렇기 상속과 오버라이드 에대해 미리 알아두고 강의를 보실 필요가 있습니다.
19강 상속강좌 --> http://bvc12.tistory.com/176
21강 오버라이드(오버로딩) 강좌 --> http://bvc12.tistory.com/178
그럼 추상클레스는 왜만들며 왜 상속해서 사용할수 있도록 있는것일까요?
추상클레스는 말그대로 구체적이지 않을떄 쓰는것 입니다.
추상적으로! 클레스를 만드는것입니다.
음.. 현직에서 업무를 하다보면 다음과 같은 문제가 생깁니다...
여러명이서 코딩작업을 한다면... 변수나... 메소드를 규칙적으로 이름을 생성해야할일이 생깁니다..
만약 똑같은 메소드를 다른이름으로 만들어 놓거나... 변수의 이름을 다르게 만들어 놓으면.... 찾기가 어렵죠?
그러면 또 이러한 생각이 들수있습니다... 그럼 클레스를 하나 만들어 놓고 그것만 쓰면되는거아님?
만약 메소드의 기능들이 조금씩만 다르면... 하나 만들어 놓은 것을 생성하고 조금씩 수정해서 쓸것입니다.
그렇게 조금씩 수정하다보면 정말로 이름이 조금씩 다르게 되고.. 정말 찾기가 어려워집니다..
그래서 메소드 명칭.... 변수 명칭 등등을 정해놓고 편리하게 사용할수 있는방법이 추상 클레스 입니다.
추상클레스의 문법은...
abstract class 클레스명 입니다.
추상클레스를 만들고 추상메소드를 만들수 있습니다.
추상메소드문법은...
abstract 리턴타입 메소드명(); 입니다.
메소드 안에 내용은 작성하실수 없습니다.
왜냐구요? 추상이 잖아요... 명칭까지만 만들어 놓는것입니다.
메소드의 내용들은 상속을하거나... 생성을할께... 무조껀!!! 오버라이드 하여 재정의를 하셔야합니다..
(쉽게 말해서 상속할때 이름만 같게 메소드를 무조껀 만들어야함..)
그럼 바로 예제를 살펴보도록 하겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | package test123123; public class java22 { public static void main(String[] args) { BB bb = new BB(); bb.test(); System.out.println("추상 클래스 AA 의 변수 a의 값:" + bb.a); } } abstract class AA { int a = 0; public AA() { System.out.println("추상클래스는 생성자도 만들수 있음."); } public abstract void test(); } class BB extends AA{ @Override public void test() { System.out.println("추상클레스 메소드 재정의 실행!"); } } | cs |
결과
그럼 설명하겠습니다.
AA 라는 추상클래스를 생성하여..
int 타입 변수 a 와 생성자 AA를 만들어 주었고....
test 라는 추상메소드를 만들어 주었습니다. 추상메소드에는 {} <--- 내용을 담는곳은 빼고 작성합니다.. 추상메소드이기 때문입니다..
BB 라는 클레스를 만들고 AA 라는 추상클레스를 상속하였습니다.
추상클레스는 꼭! 추상메소드를 오버라이드 하여 재작성하여야 합니다. (오버라이드 안하시면 컴파일도 안되실겁니다.. 바로 에러..)
test 메소드를 오버라이드 하여 System.out.println("추상클레스 메소드 재정의 실행!"); 이라는 내용을 넣었습니다.
.
'Programming > JAVA, Spring' 카테고리의 다른 글
[java 24강] 내부 클래스(Inner Class) (0) | 2018.03.05 |
---|---|
[java 23강] 인터페이스 (interface) (4) | 2018.02.20 |
[java 21강] 오버라이딩 (Overriding,오버라이드,Override), 슈퍼 (super) (0) | 2018.02.18 |
[java 20강] 정적변수와 메소드 (static) (0) | 2018.02.14 |
[java 19강] 자바 상속 (extends) (11) | 2018.02.13 |
- Total
- Today
- Yesterday
- 자바
- 0원 요금제
- 핸드폰 싼 요금제
- 무실적 체크카드
- 별정통신사 저렴한 요금제
- 핸드폰 만원 미만 요금제
- 자바스크립트
- 제주도가볼만한곳
- 저렴한 요금제
- 핸드폰 저렴한 요금제
- 티스토리 블로그
- 정보처리기사
- jsp 태그
- 티스토리초대장확인
- 알뜰통신사 저렴한 요금제
- 조던
- Javascript
- 별정 저렴한 요금제
- 알뜰폰 저렴한 요금제
- 알뜰통신 저렴한 요금제
- JQuery
- 티스토리 가입
- 제이쿼리
- 티스토리
- 티스토리 초대장
- 1000원 요금제
- 별정통신 저렴한 요금제
- java
- 알뜰 저렴한 요금제
- 초대장
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |