[ php ] Class 사용법 정리 3. 클래스상속 > php

본문 바로가기
사이트 내 전체검색

php

[ php ] Class 사용법 정리 3. 클래스상속

페이지 정보

작성자 웹지기 댓글 0건 조회 3,882회 작성일 18-09-11 14:32

본문

3.클래스상속


클래스를상속하려면?


기존에이미작성된클래스를상속(class inheritance)받으면이미작성된메쏘드와멤버변수를그대로이어받게됩니다.

상속받은특성에덧붙여새로운특성을추가하는방법으로새로운클래스를정의하게됩니다.

이와같이기존의클래스로부터특성을이어받는것을상속이라고합니다.

이때확장된클래스를정의하기위해"extends"라는키워드를사용합니다.


부모클래스&자식클래스에관련된용어


기존의클래스와확장된클래스를나타내는용어는객체지향언어마다다양하게사용되고있습니다.

그러나어떤용어를사용하더라도같은의미로사용되고있다고이해하시면됩니다.


기존의클래스확장된클래스

용어영문용어영문

기반클래스baseclass

파생클래스 derived class

수퍼클래스superclass

서브클래스subclass

부모클래스 parent class {}

자식클래스 child class


클래스상속예제

classCart{

  var $items;  // Items in our shopping cart


// Add $num articles of $artnr to the cart


function add_item ($artnr, $num){

    $this->items[$artnr]+= $num;

  }


// Take $num articles of $artnr out of the cart


function remove_item ($artnr, $num){

    if($this->items[$artnr]> $num){

      $this->items[$artnr]-= $num;

      returntrue;

    }else{

      returnfalse;

    }  

  }

}


class Named_Cart extendsCart{

  var $owner;


function set_owner ($name){

    $this->owner = $name;

  }

}


클래스 Named_Cart는클래스Cart의모든변수와함수를그대로상속받게되며,새로운멤버인변수 $owner과함수 set_owner()를추가하여정의합니다.

앞서배운new연산자를이용하여클래스 Named_Cart의객체를생성한후장바구니주인을지정하거나주인이누구인지확인할수있습니다.

아울러부모클래스Cart에있는장바구니관련함수를그대로사용할수있습니다.

$ncart =new Named_Cart;    // Create a named cart

$ncart->set_owner ("kris");// Name that cart

print $ncart->owner;        // print the cart owners name

$ncart->add_item ("10",1);// (inherited functionality from cart)


단일상속


PHP는다중상속(multiple inheritance)를지원하지않으며,오로지단일상속만지원합니다.

 

추천0 비추천0

댓글목록

등록된 댓글이 없습니다.

Total 82건 6 페이지
  • 7 [ php ] 난수생성 rand, mt_rand
  • 함수rand() 난수생성mt_rand() 향상된 난수 생성srand() 난수생성 초기화getrandmax() 가능한 최대 난수값을 표시rand(최대값, 최소값) 또는 rand()mt_rand(최소값, 최대값) 또는 mt_rand()
  • 웹지기 09-06 5064 0 0 댓글 0
  • 5 [ php ] php에서 mysql 버젼 확인 하기
  • $sql = " SELECT version() AS mysql_version ";$row = sql_fetch($sql);echo $row['mysql_version'];$sql = " SHOW VARIABLES LIKE '%VERSION%' ";$result = sql_query($sql);while($row = sql_fetch_array($result)) { print_r2($row);}mysqli 에서는 오류를 내뱉는다.echo mysql_get_ser...
  • 웹지기 08-30 4016 0 0 댓글 0
  • 4 [ php ] [그누보드5] 사용자 게시글 작성시 관리자가 받는 메일에서 이미지 깨짐현상.
  • 사용자 게시글 작성시 관리자가 받는 메일에서 이미지 깨짐현상./bbs/write_update_mail.php<style>.gnu_content img{width:100%}</style>헤더부분에 스타일 추가$wr_content불러오는 부분의 div를<div class="gnu_content" 이런식으로 클래스를 추가해서 메일이 발송되게 해줌모바일에서 메일확인하면 테이블의 width가 정해져 있어서 깨진다�...
  • 웹지기 08-30 4812 0 0 댓글 0
  • 3 [ php ] MS Word docx 파일 생성 라이브러리
  • PHPWord : http://phpword.codeplex.com서버상에 docx 파일을 올리고 이파일에 특정 항목의 값을 post로 넘겨받은후 템플릿 파일에 그값을 채워넣고 워드파일 생성ex파일 : PHPWord/Examples/Template.php [이 게시물은 웹지기님에 의해 2018-08-28 14:20:25 php에서 이동 됨]
  • 웹지기 08-24 6130 0 0 댓글 0
+1
  • 2 [ php ] 마법상수 : magic constants __FILE__, __DIR 등등
  • 마법 상수 ¶PHP는 어떤스크립트에서도 유효한 많은 수의 미리 정의된 상수를 제공한다. 하지만 이 상수의 대부분은 다양한 확장(extension)에 의해 생성된다. 그래서 그 확장이 같이 컴파일되어 유효하거나 동적인 로딩이 되어있어야 이런 상수가 존재하게 된다.여덟 가지 마법 상수가 존재한다. 이 상수들은 어디에서 쓰느냐에 따라 용도가 변경된다. 예를 들면, __LINE__상수의 값은 스크립트의 해당 줄과 관련이 있다. 이 특별한 상수들은 대소문자 구별이 없고 다음과 같다:약간의 "마법&...
  • 웹지기 08-23 4979 0 0 댓글 0
  • 1 [ php ] json 한글 깨지는 현상 해결
  • 배열을 json_encode()해서 json으로 바꿀 때 한글 값이 유니코드로 깨져 들어가는 현상을 해결하는 방법PHP 버젼별로 다르게 구현PHP 5.3 이하function my_json_encode($arr){ //convmap since 0x80 char codes so it takes all multibyte codes (above ASCII 127). So such characters are being "hidden" from normal json_encoding ar...
  • 웹지기 08-28 8655 0 0 댓글 0
게시물 검색

회원로그인

접속자집계

오늘
8,675
어제
7,449
최대
33,828
전체
8,405,847

그누보드5
Copyright © funyphp.com. All rights reserved.