/*
action메서드의 매개변수가 Robot타입이므로 Robot클래스의 자손클래스인
DanceRobot, SingRobot, DrawRobot의 인스턴스는 모두 매개변수로 가능하다
action메서드 내에서는 실제로 받아온 인스턴스가 어떤 것인지 알 수 없다.
단지 Robot클래스 또는 그 자손클래스의 인스턴스일 것이라는 것만 알 수 있다.
그래서 instanceof연산자를 이용해야만 실제 인스턴스의 타입을 확인할 수 있다.
*/
class Robot {}
class DanceRobot extends Robot {
function dance() {
echo '춤을 춥니다.';
}
}
class SingRobot extends Robot {
function sing() {
echo '노래를 합니다.';
}
}
class DrawRobot extends Robot {
function draw() {
echo '그림을 그립니다.';
}
}
function action(Robot $r) {
if ($r instanceof DanceRobot) {
$r->dance();
} else if ($r instanceof SingRobot) {
$r->sing();
} else if ($r instanceof DrawRobot) {
$r->draw();
}
}
$arr = array( new DanceRobot(), new SingRobot(), new DrawRobot());
for($i=0; $i< count($arr); $i++) {
action($arr[$i]);
}
게시글 목록
| 번호 | 제목 |
|---|---|
| 12413 | |
| 12412 | |
| 12411 |
JavaScript
실시간 카운트 다운 시계 입니다.
|
| 12410 |
jQuery
jQuery, 이미지맵 마우스오버시 하이라이트 표시
|
| 12407 | |
| 12406 | |
| 12405 | |
| 12404 |
JavaScript
한번만 submit 되게 하기 입니다.
|
| 12403 |
JavaScript
영문자나 숫자만 입력 할 수 있게 하기 입니다.
|
| 12402 |
JavaScript
현재 페이지 이메일로 보내는 버튼 만들기 입니다.
|
| 12401 |
JavaScript
모바일웹에서 PC버전 링크
|
| 12400 |
JavaScript
특정 파일형태만 업로드 하기 입니다.
|
| 12399 |
JavaScript
입력 문자열 앞에 붙는 공백 제거하기 입니다.
|
| 12398 |
JavaScript
키보드 방향키로 창의 위치를 이동시키기 입니다.
|
| 12397 | |
| 12396 | |
| 12395 |
JavaScript
키보드 눌러 이동하는 단축키 사용하기 입니다.
|
| 12394 |
JavaScript
책장을 넘기는 것같은 이미지 슬라이드 쇼 입니다.
|
| 12393 |
JavaScript
마우스를 대면 링크 이미지들을 보여주기 입니다.
|
| 12392 |
PHP
pushbullet 푸시 발송
|
| 12391 |
MySQL
같은 컬럼의 행들을 한번에 UPDATE 하기
|
| 12390 |
JavaScript
이미지들을 보여주는 풀다운 콤보메뉴 입니다.
|
| 12389 |
JavaScript
부드럽게 오버랩되는 이미지 슬라이드 쇼 입니다.
|
| 12388 |
JavaScript
끊김없이 연속적으로 스크롤 되는 이미지 스크롤러 입니다.
|
| 12387 |
PHP
php 주요 정리 입니다.
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기