반응형
안녕들 하시죠 !
이번시간에는 Java의 추상 클래스에대해 알아보겠습니다.
추상 클래스란?
서브 클래스가 구현할 메소드를 명료하게 알려주는 인터페이스 역할.
추상 클래스를 책의 목차에 비유할 수 있고, 서브 클래스는 목차에 따라 작성된 책이라고 표현할 수 있다.
서브 클래스에서 추상 메소드를 목적에 맞게 구현하여 다형성을 실현할 수 있다.
코드를 구현하는 클래스가 아니라 단순히 껍데기만 있는 클래스이다.
주의할 점
* 추상 클래스는 객체를 생성할 수 없다.
* 추상 메소드를 가지고 있으면 반드시 추상 클래스로 선언되어야 한다.
* 서브 클래스에서 추상 클래스에 선언된 추상 메소드를 모두 구현해야 한다.
참고서적의 간단한 예제를 풀어보겠습니다.
다음 추상 클래스 Calculator를 상속받은 GoodCalc 클래스를 구현하라.
1
2
3
4
5
|
abstract public class Calculator {
public abstract int add(int a, int b); // 두 정수의 합을 구하여 리턴
public abstract int substract(int a, int b); // 두 정수의 차를 구하여 리턴
public abstract double average(int[] a); // 배열에 저장된 정수의 평균 리턴
}
|
cs |
추상 클래스인 Calculator는 add(), subtract(), average() 메소드를 추상 메소드로 선언하였을 뿐 어떻게 구현할지는 지시하지 않는다.
어떤 인자가 전달되고 어떤 타입의 값이 리턴되는지만 지정할 뿐이다.
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
|
public class GoodCalc extends Calculator {
@Override
public int add(int a, int b) {
return a + b;
}
@Override
public int subtract(int a, int b) {
return a - b;
}
@Override
public double average(int[] a) {
double sum = 0;
for (int i = 0; i < a.length; i++) {
sum += a[i];
}
return sum/a.length;
}
public static void main(String[] args) {
GoodCalc c = new GoodCalc();
System.out.println(c.add(2, 3));
System.out.println(c.subtract(2, 3));
System.out.println(c.average(new int[] {2,3,4}));
}
}
|
cs |
추상 클래스 Calculator를 상속받은 서브 클래스 GoodCalc에서 추상 메소드인 add(), subtract(), average()를 구현했습니다.
오늘은 여기까지입니다 감사합니다 !
참고서적 황기태,김효수 「명품 JAVA Programming」
'Java' 카테고리의 다른 글
Java의 문자열 분리 (StringTokenizer) (0) | 2019.05.16 |
---|---|
Java의 == 연산자와 equals 메소드 (0) | 2019.05.13 |
Java의 생성자 (0) | 2019.04.29 |
Java의 length필드 사용법 (1) | 2019.04.29 |
Java의 변수와 데이터타입 (Data type) (0) | 2019.04.21 |