Web(웹) Study/PHP
[PHP] 클래스 - 추상 클래스 ( Abstract)
알 수 없는 사용자
2009. 10. 6. 22:16
<?
/*
** 추상 클래스 **
상위 클래스에서 메소드(껍데기)만 구현하고, 하위 클래스에서 그 메소드를
구현해야 한다.
CSpeak 클래스에서 speak()라는 추상 메소드를 구현 했으며, 하위 클래스의
CKor, CEng에서 각각 실제 기능이 있는 speak() 메소드를 구현 하였다.
*/
abstract class CSpeak
{
abstract public function speak();
public function write()
{
$this->speak();
}
public function __set($name, $value) { $this->{$name}=$value; }
public function __get($name) { return $this->{$name}; }
}
class CKor extends CSpeak
{
public function speak()
{
echo "한국어를 하다.<br>";
}
}
class CEng extends CSpeak
{
public function speak()
{
echo "영어를 하다.<br>";
}
}
/*
class CJpn extends CSpeak
{
// 추상 메소드를 구현하지 않았기 때문에 에러가 난다.
}
*/
$kor = new CKor();
$eng = new CEng();
$kor->write();
$eng->write();
?>
결과 :
한국어를 하다.
영어를 하다.
/*
** 추상 클래스 **
상위 클래스에서 메소드(껍데기)만 구현하고, 하위 클래스에서 그 메소드를
구현해야 한다.
CSpeak 클래스에서 speak()라는 추상 메소드를 구현 했으며, 하위 클래스의
CKor, CEng에서 각각 실제 기능이 있는 speak() 메소드를 구현 하였다.
*/
abstract class CSpeak
{
abstract public function speak();
public function write()
{
$this->speak();
}
public function __set($name, $value) { $this->{$name}=$value; }
public function __get($name) { return $this->{$name}; }
}
class CKor extends CSpeak
{
public function speak()
{
echo "한국어를 하다.<br>";
}
}
class CEng extends CSpeak
{
public function speak()
{
echo "영어를 하다.<br>";
}
}
/*
class CJpn extends CSpeak
{
// 추상 메소드를 구현하지 않았기 때문에 에러가 난다.
}
*/
$kor = new CKor();
$eng = new CEng();
$kor->write();
$eng->write();
?>
결과 :
한국어를 하다.
영어를 하다.