添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • ----------------------注意:抽象方法 不能有方法体,写到小括号就行了----------------------
  • 下面这样写是错误的(有方法体)
  • public abstract function blance() {
  • Fatal error: Abstract function FlyIdea::engine() cannot contain body
  • ----------------------抽象类不能 new 来实例化----------------------
  • 下面这行是错误的
  • $kongke = new FlyIdea();
  • Cannot instantiate abstract class FlyIdea
  • // ------------1----------到了明朝,万户用火箭解决了发动机的问题----------------------
  • abstract class Rocket extends FlyIdea {
  • // 万户把engine方法,给实现了,不再抽象了
  • public function engine() {
  • echo '点燃火药,失去平衡,嘭!<br />';
  • // 继承自父类,但是万户实现不了平衡舵,(还有一个抽象方法)
  • // 因此平衡舵对于Rocket类来说,
  • // 还是抽象的,
  • // 类也是抽象的 因此类加一个abstract
  • ------------1----------到了现代,燕十八亲自制作飞行器----------------------
  • 这个Fly类中,所以抽象方法,都已经实现了,不再是梦想.
  • class Fly extends Rocket{
  • public function engine() {
  • echo '有力一扔<br />';
  • public function blance() {
  • echo '两个纸翼保持平衡~~~';
  • public function start() {
  • $this->engine();
  • for( $i=0; $i<10; $i++) {
  • $this->blance();
  • echo '平稳飞行<br />';
  • $apache = new Fly();
  • $apache->start();
  • /*有力一扔
  • 两个纸翼保持平衡~~~平稳飞行
  • 两个纸翼保持平衡~~~平稳飞行
  • 两个纸翼保持平衡~~~平稳飞行
  • 两个纸翼保持平衡~~~平稳飞行
  • 两个纸翼保持平衡~~~平稳飞行
  • 两个纸翼保持平衡~~~平稳飞行
  • 两个纸翼保持平衡~~~平稳飞行
  • 两个纸翼保持平衡~~~平稳飞行
  • 两个纸翼保持平衡~~~平稳飞行
  • 两个纸翼保持平衡~~~平稳飞行*/
  • //有一个类是抽象的,但是里面的方法不是抽象的,能否new?
  • 但是 --- 即便全是具体方法,但类是抽象的,
  • 也不能实例化.*/
  • abstract class Car {
  • public function run() {
  • echo '滴滴';
  • //$qq = new qq();   不能实例化
  • //解决办法》》》继承
  • class qq extends Car {
  • $qq = new qq();
  • 类前加 abstract 是抽象类

    方法前加 abstract 是抽象方法

    抽象类 不能 实例化

    抽象方法 不能有 方法体

    有抽象方法,则此类必是 抽象类

    抽象类,内未必有抽象方法

    但是 --- 即便全是具体方法,但类是抽象的,

    也不能实例化.

    二、抽象类的意义

    请看如下场景:

    Facebook 多国语言欢迎页面

    user登陆,有一个 c 字段,是其国家

    当各国人登陆时,看到各国语言的欢迎界面

    我们可以用 面向过程 的来做