PHP Object Oriented Notes - 131 Abstract Classes

/*
The role of the abstract class:

When used as an interface, when used as a template to
achieve polymorphism, born to be a father
*/


// === Code Section 1 ===

// = write a crafting craft with abstract = //

abstract class FlyIdea {
    // 大力引擎
    public abstract function engine();

    // 平衡舵
    public abstract function balance();

    /*
         注意:抽象方法中 不能有方法体
         下面这样写是错误的
         public abstract function balance() {

         }
         报错如下:
         Fatal error: Abstract function FlyIdea::balance() cannot contain body
    */
}

/*
抽象类不能new 来实例化
$kongke = new FlyIdea();

报错如下:
Fatal error: Cannot instantiate abstract class FlyIdea
*/


// = Solve the engine problem with the rocket = //

abstract class Rocket extends FlyIdea {

    public function engine() {
        echo '点燃火药,失去平衡。<br >';
    }
}

class Fly extends Rocket {
    public function engine() {
        echo '用力一扔<br >';
    }

    public function balance() {
        echo '两个纸翼保持平衡~~~~~~';
    }

    public function start() {
        $this->engine();
        for($i=0;$i<10;$i++) {
            $this->balance();
            echo '平稳飞行<br >';
        }
    }
}


$apache = new Fly();
$apache->start();

/*
Summary:

Add abstract before a class is an abstract class Add abstract before a
method is an abstract method

Abstract classes cannot be instantiated
Abstract methods cannot have method bodies

If there is an abstract method, this class must be an abstract class. An
abstract class may not have an abstract method in it
*/


// === Code Section 2 ===

// =Facebook Multilingual Welcome Page= //

abstract class Welcome {
    public abstract function wel();
}

class china extends Welcome {
    public function wel() {
        echo '你好,非死不可<br >';
    }
}

class english extends Welcome {
    public function wel() {
        echo 'hi,welcome<br >';
    }
}

class japan extends Welcome {
    public function wel() {
        echo '搜达斯奈<br >';
    }
}


$c = 'china'; //english //japan

$wel = new $c();
$wel->wel();

/*
To add other national languages ​​in the future,
just add a new welcome class.
*/
write picture description here

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324822289&siteId=291194637