抽象类:含有抽象方法的类。(父类指定给后代做的一些事[父亲没有完成的])
接口:只含有抽象方法的类。
多态:一个函数可以使用多个类。(通过一个函数去加工多个不同的类对象)
抽象类例子如下:(注:抽象方法没有方法体,而且抽象类里面也可以有其他的普通方法。后代只要完成父辈指定的未完成的抽象方法即可,只有子类完成才可以实例父类的其他的普通方法。)
<?php
abstract class usb{
abstract function star();
abstract function play();
abstract function stop();
function useusb(){
$this->star();
$this->play();
$this->stop();
}
}
class uspan extends usb{
function star() {
echo "准备识别USB<br>";
}
function play() {
echo "正在识别USB<br>";
}
function stop() {
echo"识别完毕USB<br>";
}
}
$chouxiang=new uspan();
$chouxiang->useusb();
?>
接口例子如下:(注意:后辈必须要完成父类指定的抽象方法,接口里面不能有其他的普通方法。后辈类里面可以有其他的普通方法。)
<?php
interface usb{
function star();
function play();
function stop();
function useusb();
}
//implements是必须实现(是父类给子类必须要实现的任务)
class uspan implements usb{
function star() {
echo "准备识别USB<br>";
}
function play() {
echo "正在识别USB<br>";
}
function stop() {
echo"识别完毕USB<br>";
}
function useusb(){
$this->star();
$this->play();
$this->stop();
}
}
$chouxiang=new uspan();
$chouxiang->useusb();
?>
多态的示例如下:()
<?php
interface usb{
function star();
function run();
function stop();
}
class upan implements usb{
function star(){
echo "准备识别Upan设备<br>";
}
function run(){
echo "正在识别Upan设备<br>";
}
function stop(){
echo "停止识别Upan设备<br>";
}
}
class udisk implements usb{
function star(){
echo "<style:margin-top:20px>准备识别Udisk设备<br>";
}
function run(){
echo "正在识别Udisk设备<br>";
}
function stop() {
echo"停止识别Udisk设备<br>";
}
}
function useusb(usb $obj){
$obj->star();
$obj->run();
$obj->stop();
}
$upan_1=new upan();
$udisk_1=new udisk();
useusb($upan_1);
useusb($udisk_1);
?>