티스토리 뷰

1. 개념
abstract 역할
abstract는 추상 클래스와 추상 메서드를 선언할 때 사용
추상 메서드는 선언만 하고 기능은 구현하지 않음
클래스에서 추상 클래스를 상속받을 경우 추상 클래스 안에 있는 추상 메서드는 반드시 오버라이드 해서 기능을 구현해야 줘야 함
2. 예제
abstract 예시
PHP 코드
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
<?php
 
//추상 클래스 선언
abstract class manager_amt
{
//추상 메소드 선언(기능 구현X)
abstract function calc_amt();
 
//일반 메서드에서 추상 메소드를 사용한다고 설정
public function me_amt()
{
//추상 메소드 calc_amt를 호출
$this ->calc_amt();
}
}
 
//추상 클래스 상속한 클래스 선언
class MyDongAmt
extends manager_amt
{
//추상 메소드에 대해 기능 구현
public function calc_amt()
{
print_r( "입금하실 금액입니다." );
}
}
 
$test = new MyDongAmt();
//추상 클래스에 있는 me_amt 메소드 호출
$test -> me_amt();
 
?>
결과 화면
코드 설명
abstract는 추상 클래스 , 추상 메소드를 선언해주는 키워드가 됩니다.
이 추상 클래스를 선언하고 일반 클래스에서 상속을 하게 되면 무조건 일반 클래스에서 추상 클래스에 있는 메소드를 선언해 주어야 오류가 발생하지 않습니다.
그리고 추상 클래스 안에서는 추상 메소드 뿐만 아니라 일반 메소드 선언하고 기능 구현이 가능합니다.
단, 추상 메소드는 기능 구현이 불가능하고 일반 클래스에서 기능 구현이 가능합니다.
위에서 보시면 추상 클래스 manager_amt에 추상 메소드 calc_amt하고 일반 메서드 me_amt를 선언했습니다.
그리고 me_amt에서 추상 메서드 calc_amt를 호출하였습니다.
이렇게 구현된 추상 클래스를 일반 클래스에서 상속을 하게 되면 반드시 일반 클래스에서는 calc_amt 메소드를 선언해 주고 여기서 기능을 구현해 줘야 합니다.
그리고 인스턴스를 생성하고 me_amt를 호출하게 되면 위의 그림과 같은 결과가 나오게 됩니다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday