今していること
オブジェクト指向を勉強中で、自分で簡単にfacebookの旅人バージョンのような物を作っております
コード
Traveler.php
class Traveler { public $name; public $age; public $sex; public $country; public function regist($name, $age, $sex, $country) { $this -> name = $name; $this -> age = $age; $this -> sex = $sex; $this -> country = $country; echo $name.",".$age.",".$sex.",".$country."をDBに登録しました"; } public function editProfile($name, $age, $sex, $country) { $this -> name = $name; $this -> age = $age; $this -> sex = $sex; $this -> country = $country; echo $name.",".$age.",".$sex.",".$country."をDBにUPDATEしました"; } public function postPublic() { echo $this->name.",". $this->age.",". $this->sex.",". $this->country.",". "this traveler posted something in public space!!"; } }
PremiumTraveler.php
class PremiumTraveler extends Traveler { public $premiumClass; public $point; function __construct() { echo "premium会員のauth処理"; } //premium会員は商品変える function buy() { echo "you buy something"; }
疑問点
(interface, abstractの自分の解釈)
interface -> 家電製品でいうコンセント、人間でいう心臓(?) などの「それがないと次のインスタンス生成するときに困る物」と解釈。中身はただ関数。
下記コードはinterfaceのイメージ
interface Conccent { public function conccent(){ //コンセントの大きさなどを決める処理 } }
abstract -> 「未だに未定義」ってこと、abstract要素がクラス内にあったら、クラス自体もabstractになる。
下記コードはabstractのイメージ
public abstract class Human { function eat(){ echo "ご飯を食べました"; } abstract function work(); //何かしらんけど仕事はするってこと }
ここまで分かりましたが(もしくは誤解していたら指摘お願いいたします)、例えば今作成中のfbのような機能を持ったアプリにおいて、どこでinterfaceとabstractを使用したら良いかいまいちわかりません。
正直プレミアム会員からみると、Travelerであることは必須なので、Travelerクラスはinterface化してimplementなのか??(これは違うと思いますが。。。)
abstractにおいては、未定義の部分をどのように(練習なので無理やりにでも構いません)挿入すればよいのか?
具体例が思いついた方には返答をいただきたいです。
よろしくお願いいたします。
回答1件