추상클래스란
일반적인 방식의 객체생성 불가
일반적인 방식으로 객체를 생성할 수 없는 클래스를 의미합니다.
따라서 new 명령어로 객체 생성이 불가능합니다.
배열 방식으로의 객체 생성
위에서 '일반적인 방식'으로를 언급한 이유는 배열로는 new 연산자로 객체생성이 가능합니다.
이유는 추상클래스로 객체를 만들수는 없지만 그 클래스의 변수나 배열에 서브 클래스의 객체를 담을 수 있기 때문입니다.
추상클래스 사용방법
추상클래스를 사용하기 위해서는 클래스 명 앞에 abstract 를 명시해 주어야 합니다.
또한 추상클래스에서는 추상메소드를 사용할 수 있는데
추상메소드란 몸체가 없는 메소드를 가질 수 있는 함수를 의미합니다.
추상메소드 명 앞에는 abstract 를 명시해 주어야 합니다.
추상클래스 사용이유
그렇다면 왜 추상클래스를 사용을 할까?
추상클래스를 상속받은 모든 서브클래스는 추상메소드와 같은 이름의 메소드를 가져야 합니다.
이 말은 추상클래스의 메소드는 하위 클래스에서 반드시 오버라이딩 되어야 한다는 의미입니다.
따라서 객체를 한 곳에 모아서 제어하는 시스템을 구현할 수 있습니다.
예제 코드
추상클래스를 배열로 생성한 후에, 서브클래스를 할당하는 방식으로 사용합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
public class abstractTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
// abstractClass asc = new abstractClass(); 사용 불가
abstractClass[] asc = new abstractClass[2];
asc[0] = new extendsabstractClass();
asc[0].show();
asc[1] = new extendsabstractClass();
asc[1].show();
}
}
abstract class abstractClass {
abstract public void show();
}
class extendsabstractClass extends abstractClass {
public void show () {
System.out.println("추상클래스를 상속받은 Show 함수");
}
}
|
cs |
자바 abstract
자바 추상클래스란
자바 추상클래스 사용이유
자바 추상클래스 장점
자바 추상클래스 사용방법
자바 추상클래스 예제코드
'Computer Language > JAVA' 카테고리의 다른 글
[JAVA] 자바 인터페이스란 (0) | 2020.12.16 |
---|---|
[JAVA] 자바 instanceof 연산자 (0) | 2020.12.16 |
[JAVA] 오버로딩(overloading)과 오버라이딩(overriding) 차이점 (0) | 2020.12.13 |
[JAVA] 자바 오버라이딩이란? (0) | 2020.12.13 |
[JAVA] 자바 public, private, protected 접근자의 차이점 (0) | 2020.12.13 |