자바(Java) - 추상 클래스
추상 클래스(Abstract Class)
-
하나 이상의 추상 메소드를 포함하는 클래스
-
반드시 구현해야 하는 부분에 대해 명시적으로 표현해야 한다.
-
추상클래스 자체는 객체를 생성할 수 없다.
추상 메소드(Abstract Method)란?
-
자식 클래스에서 반드시 오버라이딩 해야하는 메소드
-
선언만 하고 구현 내용이 없다.
1
abstract void methodName();
추상 클래스의 용도
클래스를 설계하는 사람이 여러 사람일 경우, 클래스마다 필드와 메소드가 각각 다른 이름을 가질 수 있다.
그렇다면 동일한 기능임에도 이름이 다르다 보니 객체마다 사용법이 달라지기 때문에 추상클래스를 생성하여, 필드와 메소드명을 통일 시키면 클래스를 작성하는데 시간을 절약할 수 있다.
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
33
34
35
36
37
38
39
40
41
42
//추상클래스로 모든 폰의 기능을 메소드로 작성한 Phone 클래스를 생성
abstract class Phone {
//필드
String Owner;
//생성자
public Phone(String owner) {
Owner = owner;
}
//메소드
public void turnOn() {
System.out.println("폰 전원을 켭니다.");
}
public void turnOff() {
System.out.println("폰 전원을 끕니다.");
}
}
//스마트폰이라는 클래스를 추상클래스의 메소드를 상속받는다.
class SmartPhone extends Phone {
//생성자
public SmartPhone(String owner) {
super(owner);
}
//메소드
public void internetSearch() {
System.out.println("인터넷 검색을 합니다.");
}
}
public class PhoneExample {
public static void main(String[] args) {
String owner = "의제";
SmartPhone phone = new SmartPhone(owner);
phone.turnOn();
phone.turnOff();
phone.internetSearch();
}
}
댓글남기기