추상함수(???)
PHP에는 추상함수나 추상클래스라는 개념이 없습니다. 있다고 가정하고 추상함수와 추상클래스를 흉내내어 보겠습니다. 아래와 같이 추상함수를 선언합니다.
[code php;gutter:false]
function breathe() {} // 추상함수(메소드의 몸체는 없음)
[/code]
추상클래스(???) 정의
클래스에 하나 이상의 추상함수가 있다면 그것을 추상클래스라고 가정하겠습니다.
[code php;gutter:false]
//
// 추상클래스 animal
//
class animal {
function breathe() {} // 추상함수
} [/code]
// 추상클래스 animal
//
class animal {
function breathe() {} // 추상함수
} [/code]
추상함수의 오버라이드
하위클래스를 정의할 때는 추상함수 breathe()를 오버라이드해야 합니다.
[code php;gutter:false]
//
// 추상클래스 animal로부터 파생된 일반클래스 fish
//
class fish extends animal {
//
// 추상함수 breathe()의 오버라이드
//
function breathe() {
print "Bubbling...\n";
}
} [/code]
// 추상클래스 animal로부터 파생된 일반클래스 fish
//
class fish extends animal {
//
// 추상함수 breathe()의 오버라이드
//
function breathe() {
print "Bubbling...\n";
}
} [/code]
추상클래스 예제
[code php;gutter:false]
//
// 추상클래스 animal
//
class animal {
function eat() { // 일반메소드
print "Eating...\n";
}
function breathe() {} // 추상함수
}
//
// 추상클래스 animal로부터 파생된 일반클래스 fish
//
class fish extends animal {
//
// 추상함수 breathe()의 오버라이드
//
function breathe() {
print "Bubbling...\n";
}
}
//
// 프로그램의 최초 진입점
//
$my_fish = new fish;
$my_fish->breathe(); [/code]
// 추상클래스 animal
//
class animal {
function eat() { // 일반메소드
print "Eating...\n";
}
function breathe() {} // 추상함수
}
//
// 추상클래스 animal로부터 파생된 일반클래스 fish
//
class fish extends animal {
//
// 추상함수 breathe()의 오버라이드
//
function breathe() {
print "Bubbling...\n";
}
}
//
// 프로그램의 최초 진입점
//
$my_fish = new fish;
$my_fish->breathe(); [/code]
이 경우에 프로그램은 클래스 fish에 정의된 breathe()함수를 수행하게 됩니다. 따라서 "Bubbling..."이 화면에 표시됩니다.
'phpclass > 객체정보' 카테고리의 다른 글
{추상클래스}6.세셔너 확장 (0) | 2000.12.28 |
---|---|
{추상클래스}5.세셔너 분석 (0) | 2000.12.28 |
{추상클래스}3.자바 (0) | 2000.12.28 |
{추상클래스}2.C++ (0) | 2000.12.28 |
{추상클래스}1.개요 (0) | 2000.12.28 |