什么是抽象方法?
定义一个类没有方法体的就是抽象方法。
那什么又是方法体呢?
大括号{}及大括号以内的部分为方法体哈。
重要:没有方法体的后面必须加一个分号作为一个语句的形成哈。
重要:在定义抽象方法时还要在前面加一个abstract来证明这是一个抽象方法哈。
第一关键字,没有方法体,必须加分号。
抽象方法:
abstract function fun1();
abstract function fun2();
那什么又是抽象类呢?
只要一个类里面有一个方法是抽象方法,那么这个类就要定义为抽象类,抽象类也要使用“abstract”关键字来修饰。
注意点:
在抽象类里面可以有不是抽象的方法和成员属性,但只要有一个方法是抽象的方法,这个类就必须声明为抽象类,使用”abstract”来修饰。
<?php
abstract class people
{
abstract function fun1();
abstract function fun2();
var $test="abc";
function fun3()
{
echo "我是抽象类里面的非抽象方法!!!";
}
}
?>
记住:抽象类中不能产生实例对象。
,所以不能直接使用。
普通类才可以直接使用。
有一种方法可以实例化,就是必须实现它。记住,抽象类必须在继承的情况下使用的哈。
为什么,因为实现是吧。
记住,必须完全实现才能实例化哈,为什么要实现,因为实现就像我把自己的想法(抽象类)变成实实在在的物体(子类)一样哈,才能实例化哈。
为什么要·完全实现,不把自己的所有想法都实现,能做出脑海里的东西吗?你说是吧。
为什么要写关键字?
因为这能让人清楚知道这到底是是什么,像是名字一样的东西把。
抽象类就像想法,实现就像实实在在的物体。所以才能实例化啊。
为什么要继承?
因为实现,他之前是不是得有关系啊
为什么继承是子类实例化啊?
因为是不是子女继承父母的东西啊.,所以我创建一个子女对象初来然后拿东西,啊哈哈哈
<?php
abstract class fu
{
abstract function fun1();
abstract function fun2();
var $test="abc";
function fun3()
{
echo "我是抽象类里面的非抽象方法!!!";
}
}
class zi extends fu
{
var $name='cyg';
var $age=20;
var $sex=1;
function fun1()
{
echo "我是子类中1实现抽象类中的抽象方法...";
}
function fun2()
{
echo "我是子类中2实现抽象类中的抽象方法...";
}
}
$zi1=new zi();
$zi1->fun1();
?>