본문 바로가기
PHP 박살내기/PHP

[PHP기초] 상속기본

by 인생여희 2017. 9. 5.
반응형

상속기본


inheritance.php

<?php

//상속

class Animal{

function run(){
print('runing...<br>');
}

function breath(){
print('breathing...<br>');
}

}


// human은 Animal 의 메소드(기능)를 상속 받아서(extends) human에 없는 메소드도 사용가능하다.
class human extends Animal{

function think(){
print('thinking...<br>');
}

function talking(){
print('talking...<br>');
}

}

//human에 없는 메소드도 사용가능하다.
$human = new Human();
$human ->run();
$human ->think();

?>



inheritance2.php

<?php

//이미 php문서에 정의되어있는 클래스
$file = new SplFileObject('data.txt');


//파일을 읽을 것이다.(파일의 사이즈)
//var_dump($file->fread($file->getSize()));

//파일의 다시 처음으로 돌아와서 읽기 시작해라
//$file->rewind();

//var_dump($file->fread($file->getSize()));


//SplFileObject을 상속하는 MyFileObject 클래스 생성
class MyFileObject extends SplFileObject{

//부모의 메소드 상속받아서 자식부분에서 제정의 했다.
function getContents(){
$content = $this->fread($this->getSize());
$this ->rewind();
return $content;
}
}

//객체 생성
$file = new MyFileObject('data.txt');

//#
//var_dump($file->fread($file->getSize()));
//$file->rewind(); // 이 메소드를 호출해줘야 다시 처음으로 가서 읽는다.
//var_dump($file->fread($file->getSize()));


var_dump($file->getContents());
//getContents안에서 rewind() 해주었기 때문에..여기서 rewind해주지 않아도 된다.
//#1 부분을 반복할 필요가 없음
var_dump($file->getContents());



?>



반응형

댓글