미완성 클래스의 정의. 바로 자바 추상클래스 강좌를 시작하겠습니다.
1. 자바 추상클래스 정의
1) 사전적 의미 : 여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용
2) 다수의 클래스에서 공통적으로 사용하는 요소들을 파악하고 하나의 미완성 클래스로 만들어 상속을 받아 가져다 쓰는 개념
3) 예를 들면 모든 동물들은 먹는 것과 걷는 기능을 함. 반드시 구현해야할 요소기 때문에 추상클래스와 메소드로 이 두가지 기능을 정의해 놓음. 그리고 여러가지 동물 클래스를 만들어 질때 상속받아 쓰면 편리하게 클래스 제작이 가능함
추상클래스와 추상메소드 구현 모습
2. 장점
- 공통적인 요소를 미리 정의해 놓음으로써 비슷한 기능을 가진 클래스를 여러개 작성할 시 편리함을 제공함
3. 추상클래스란?
1) 인스턴스화 할 수 없는 완성되지 않은 클래스
2) 추상메소드를 포함하고 있으면 추상클래스가 된다.(멤버변수와는 무관)
3) 클래스 선언시 Abstract를 명시해야 함
4) 상속을 통해 사용하는 것이 일반적
4. 추상메소드란?
1) 선언은 되어있으나 구현부가 없는 메소드
2) 상속을 받는 클래스에서 오버라이딩해서 실제 구현부를 작성해 사용함
3) 추상메소드가 있는 추상클래스를 상속 받는 클래스는 반드시 추상메소드를 명시해야 함
5. 자바 추상클래스 예제 소스
//테스트 abstract class Animal { String name; abstract void eat(); abstract void moving(); } class Tiger extends Animal { String name ="호랭이"; String eat = "파스타"; @Override void eat() { System.out.println(name+"는 "+eat+"를 먹습니다."); } @Override void moving() { System.out.println(name+"는 사자네 집에 갑니다."); } } class Fox extends Animal { String name ="여우"; String eat ="생수"; @Override void eat() { System.out.println(name+"는 "+eat+"를 먹습니다."); } @Override void moving() { System.out.println(name+"는 늑대네 집에 갑니다."); } } public class AnimalTest{ public static void main(String[] args) { Tiger t = new Tiger(); Fox f = new Fox(); t.eat(); t.moving(); f.eat(); f.moving(); } }
6. 소스 구동 결과
이렇게 자바 개발에 사용되는 추상클래스에 대해서 알아보았는데요.
적절하게 사용하면 클래스와 메소드의 구현시 상단히 편리하니 숙지하시는 것이 좋습니다.
“자바 추상클래스 예제와 기능”에 대한 2개의 응답
이해가 잘되게 설명 잘해주셨네요
감사합니다. ^^
감사 댓글 달아 주셔서 저도 감사합니다.^^