php 抽象类、接口和构析方法

<?php

/*class Ren
{
    public static $color;

    static function Show()
    {
        Car::$name;
        self::$color;
    }
}

class Car
{
    public static $name;
}*/

//抽象类
/*abstract class DongWu
{
    public $dong;
    public $jiao;

    function Chi()
    {
    }
    function Shui()
    {
    }
}*/

//接口关键字:interface
//接口里面的方法没有函数体
//实现接口使用的关键字:implements,不使用extends
//实现接口的子类必须要实现接口的每个方法

//接口
/*interface USB
{
    function Read();
    function Write();
}
//鼠标
class Mouse implements USB
{
    function Read()
    {
        echo "插入了鼠标!";
    }
    function Write()
    {
        echo "通电给鼠标!";
    }
}
//键盘
class JianPan implements USB
{
    function Read()
    {
        echo "插入了键盘";
    }
    function Write()
    {
        echo "通电给键盘";
    }
}

$m = new Mouse();
$m->Read();
$m->Write();*/

/*class Ren
{
    public $name="张三";
    public $sex;
    public $age;

    function Run()
    {
    }

    function show()
    {
        echo "name代表姓名,sex代表性别,age代表年龄,Run()方法代表跑的方法";
    }

    //析构方法
    function __destruct()
    {
        //在对象销毁之前,将内存释放,连接关闭等等
        echo "该对象销毁了!";
    }

    //在输出对象的时候调用,必须有一个返回值
    function __tostring()
    {
        //return "name代表姓名,sex代表性别,age代表年龄,Run()方法代表跑的方法";
        return $this->name;
    }

}*/
//写法特殊:__destruct
//执行时间特殊:在对象销毁的时候执行

/*$r = new Ren();

$r->name = "张三";

var_dump($r);*/

/*$r = new Ren();

echo $r;
*/

//小知识点
/*
$a = 10;
$b=3;
$c = 25;

unset($b);

if(!isset($b))
{
    echo "变量b不存在!";
    exit;    //退出程序

    die("变量b不存在!"); //输出错误信息并且退出程序
}

$sum = $a+$b;
echo $sum;

echo "<br>";

echo $a*$sum;
*/

/*$attr = array(1,2,3,4);
$a = "hello";

var_dump($attr);
print_r($attr);
print_r($a);

echo "hello","aa";
print "vv";
*/

?>

时间: 2024-11-05 19:36:40

php 抽象类、接口和构析方法的相关文章

跟着百度学PHP[4]OOP面对对象编程-6-构造方法(__construct)和构析方法(__destruct)

函数就是成员方法(方法有三:构造方法.成员方法.析构方法) 下面是两种方法. 构造方法和构析方法 00x1 构造方法 构造方法会在创建对象之后自动调用.其名称为__construct <?php class Student{ var $name; var $age; var $sex; function __construct(){ //可以从输出中看得出来,我们并没有输出这个方法,但是他自动输出了.这个就是构造方法的作用,会自动的被调用! echo "520PHP<br />

0607am抽象类&amp;接口&amp;析构方法&amp;tostring&amp;小知识点

/*class ren{ public static $color;//静态 static function () { ren::$color; self::$color;//self只能写在类里面,代表这分类 }} */ //不能实例化的类:抽象类abstract class Animal //关键字abstract{ public $dong; public $jiao; function chi() { } function shui() { }}class Ren extends Ani

接口、接口优点、接口的属性和方法特性、接口与继承的区别、接口与抽象类的区别、匿名实现类、JDK1.8新特性、打印类名称

接口里的属性,必须是公共的/默认的&静态的&Final&初始化后的属性: 接口里所有方法都是抽象的. 接口和继承---先天有的用继承,后天学习的用接口: 接口特性-------- 1.接口不可以被实例化: 2.实现类必须实现接口中所有方法,否则实现类必须是抽象类 3.实现类可以实现多个接口,来弥补Java不能多继承: 4.接口中的变量都是静态常量:(静态的-可以通过类的名字点-直接调用:) ----------------------------------------------

java中,一个类实现某个接口,必须重写接口中的所有方法吗

不一定,关键要看子类是否是抽象类.如果子类是非抽象类,则必须实现接口中的所有方法: 如果子类是抽象类,则可以不实现接口中的所有方法,因为抽象类中允许有抽象方法的存在!1.抽象类定义抽象类往往用来表征对问题领域进行分析.设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象.通常在编程语句中用 abstract 修饰的类是抽象类.在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象:在java中,含有抽象方法的类称为抽象类,同样不能生成对象.抽象类是不完整的,它只能用作基类

Java实训笔记(二)——-抽象类-接口-泛型-集合

1.1方法的可变参数从JDK1.5之后,定义方法时参数的个数可以变化语法:最后一个数据类型后增加3个点注意:1.可变参数只能处于参数列表的最后:2.一个方法中最多只能包含一个可变参数:3.可变参数的本质就是一个数组,因此在调用一个包含可变参数的方法时,既可以传人多个参数,也可以传入一个数组.1.2装箱与拆箱基本数据类型与对应的封装类之间能够自动进行转换,其本质是Java的自动装箱与拆箱过程.-装箱是指将基本类型数据值转换成对应的封装类对象,即将栈中的数据封装成对象存放到堆中的过程.-拆箱是装箱的

PHP基础------抽象类------接口

<?php header("content-type:text/html; charset=utf-8"); //抽象类,抽象类不能被实例化,抽象方法不能有方法体,只能由子类继承去实现,抽象方法用abstract修饰 abstract class Person { abstract function eat(); abstract function say(); } class son extends Person { function eat() { echo "我能

抽象类-接口--抽象方法几点解释

//abstract class和interface有什么区别?含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象.含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的.abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,(抽象类中的普通方法,可以不必实现.)所以,不能有抽象构造方法或抽象静态方法.如果子类没有实现抽象父类中的所有抽 象方法,那么子类也必须定义

韩顺平循序渐进学java 第13讲 抽象类.接口

13.1抽象类 13.1.1 概念 当父类的一些方法不能确定时,可以用abstract关键字来修饰该方法,称为抽象方法,用abstract来修饰该类,称为抽象类. 13.1.2 抽象类-深入讨论 抽象类是java中一个比较重要的类: 1.用abstract关键字来修饰一个类时,这个类就叫抽象类: 2.用abstract关键字来修饰一个方法时,这个方法就叫抽象方法: 3.抽象方法在编程中用的不是很多,但是在公司笔试时考的较多. 13.1.3 抽象类-注意事项 1.抽象类不能实例化: 2.抽象类不一

Java8接口中的默认方法

Java8新增特性,可以为接口中添加默认方法,实现这个接口的所有类都会继承这个方法,这样看起来,接口和类的界限就有点不明显了,同时也会带来多继承,菱形问题.这样设计的初衷是什么? 重所周知,java8开始支持lambda表达式,可以把函数当做参数传递,最明显的lambda表达式应用场景莫过于对collection的每一个元素应用lambda.如果想为Collection实现lambda表达式:list.forEach(…); // 这就是lambda代码 首先想到的是为Collection的父接