몽상실현개발주의

[생활코딩] 17.8 상속 기본 (inheritance) 본문

Language/php

[생활코딩] 17.8 상속 기본 (inheritance)

migrationArc 2021. 6. 6. 23:52

[생활코딩] 17.8 상속 기본 (inheritance)

생활코딩 php 강좌

17. PHP의 객체 지향 프로그래밍

17.8 상속 기본 (inheritance)

  • 상속의 장점
    • 중복된 코드 제거
    • 재사용성
    • 가독성

 

 

  • 상속
    • Original Object 인 Parent (부모) Object 의 Method 의 기능을 상속 받아 새로운 객체를 만들 수 있음
    • 상속받은 객체: Child Object
  • Child Object는 Parent Object 에 영향을 주지 않고 새로운 Method 를 추가 가능

 

 

  • Standard PHP Library 의 File Handling 객체 세 가지
    • SplFileInfo Class
      • 파일의 정보를 알려주는 Class
    • SplFileObejct Class: SplFileInfo Class 의 Child Object
      • SplFileInfo Class 를 상속 받음
      • File R/W Method 기능을 가지고 있음
    • SplTempFileObejct: SplFILEObejct 의 Child Object
      • SplFileObject Class 를 상속 받음

 

 

<?php
class Animal{
    function run(){
        print('running..<br/>');
    }
    function breathe(){
        print('breating...<br/>');
    }
}

class Human extends Animal{
    // function run(){
    //     print('running...<br/>');
    // }
    // function breathe(){
    //     print('breating...<br/>');
    // }

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

$human = new Human();
$human->run();
$human->think();
?>
  
// running..
// thinking...
  • Human Object 는 Animal 을 상속받음
    • Animal 에 정의된 run method 와 breate method 를 사용 가능

 

 

<?php
$file = new SplFileObject('lorem.txt');
var_dump($file->fread($file->getSize()));
// file 을 읽으면서 cursor 가 file 의 끝으로 이동
$file->rewind();
// cursor 를 file 의 처음으로 이동
var_dump($file->fread($file->getSize()));
?>
  • SplFileObject 의 fread() method 는 cursor의 위치에서 부터 file 을 읽음
    • 한번 동작후 cursor 의 위치를 파일의 앞으로 돌려 놓지 않으면, cursor 가 file 의 마지막에 위치함으로 읽을 내용이 없는 상태가 됨
    • rewind() : cursor 를 file 의 처음으로 이동

 

 

<?php
class MyFileObject extends SplFileObject{
    function getContents(){
        $content = $this->fread($this->getSize());
        $this->rewind();
        return $content;
    }
}

$myFile = new MyFileObject('lorem.txt');
var_dump($myFile->getContents());
var_dump($myFile->getContents());
?>
  • SplFileObject 를 상속받은 새로운 객체 정의
    • rewind() 기능과 함께 동작하는 getContents Method 를 추가

 

 


이 글의 모든 사진과 내용의 출처는 생활코딩에 있음을 알려드립니다.

http://www.inflearn.com/course/%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A9-php-%EA%B0%95%EC%A2%8C/lecture/230?tab=note

 

생활코딩 - PHP 기본 A 부터 Z 까지 - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com

 

 

 

Comments