PHP的抽象类的一段简单代码示例

<?php
//******使用关键字abstract声明该类为抽象类*****
 abstract class Person{
     protected $name;
     protected $age;
     function __construct($name="",$age=18){
                 $this->name=$name;
                 $this->age=$age;
                 }
      
      //***声明抽象类中的抽象方法****
      //***抽象方法不必声明具体的行为***
     abstract function getname();
     abstract function getage();
     
    function greeting(){
         echo "hello,world";
         }
 }
 
 //***抽象类不能被直接实例化,只能通过子类继承***
 
 class newPerson1 extends Person{
 
 //***子类必须对抽象类中的全部抽象方法进行实现处理***
     function getname(){
             echo "the name is ".$this->name."<br/>";
             }
     function getage(){
             echo  "the age is ".$this->age."<br/>";
               }
   }
$tom = new newPerson1("tom",20);
$tom->getname();
$tom->getage();
$tom->greeting();
?>
时间: 2024-08-06 00:02:04

PHP的抽象类的一段简单代码示例的相关文章

Salesforce用Apex判断Role Hierarchy的简单代码示例

由于role不同于Profile,带有阶层性质,所以有一些自定义功能要依赖于这种阶层的设定.这样就涉及到role hierarchy的判断问题. 我是一个绝懒之人,所以去网上搜了一下,能找到的方案都或多或少有些缺陷 . 我所提供的方案也是如此,但是想比于浪费太多SOQL查询次数来讲,role的数量不超过50000条已经是足够好了.// 这里Update一下,其实根本不会有那么多的Role,因为默认500,向Salesforce技术支持提票才能达到10000. Talk is cheap, sho

Entity Framework 6 学习笔记2 — 增、删、改、显示简单代码示例

前言 通过 “Entity Framework 6 学习笔记1 — 介绍和安装方法”文章我相信大家对EF的安装应该没什么问题了,整体安装还是比较简单的,只需要通过Nuge搜索EF然后安装就可以了,这也体现了微软一贯原则–“简单”. 安装完了我想很多朋友也着急想体验下EF的好处了吧,今天我就通过EF框架对增.删.改操作做一个简单示例. 创建表 这里我只是做示例所以就创建了一个表并且字段也很少.下面是sql语句,大家可以直接复制生成表结构.   CREATE TABLE Book   (   Id

因一段JavaScript代码引发的闲扯

前两天,一朋友给我发了一段JavaScript代码: function f1(){ var n=999; nAdd=function(){ n+=1 }; function f2(){ alert(n); } return f2; } var result1=f1(); var result2=f1(); result1(); // 999 result2();//999 nAdd(); result1(); // 是999而不是1000,这是为何呢? result2();//1000 问题的原

一段简单的代码告诉你什么叫内存溢出

#include <stdio.h> int FooArray[4] = {1, 1, 1, 1}; int VeryImportantValue = 7; void main() { printf("%d\n", VeryImportantValue); for (int i = 0; i <= 4; i++) { FooArray[i] = 4; } printf("%d\n", VeryImportantValue); } 这是个很简单的内存

由一段JS代码引发的思考

不知道大家在编程的时候有没有遇到过这种情况,就是在循环遍历删除一部分内容的时候,发现只能删除其中一部分,而另一部分却总也删不掉,然后觉得自己的逻辑没有问题啊,于是陷入了深深的抑郁之中…… 昨天在处理一段JS脚本的时候就遇到了这种问题,业务逻辑很简单,就是获取HTML某元素下的所有子元素,然后循环删除(其实更简单的方法是直接innerHTML赋值为空,这里只是讨论一下关于删除的问题).我发现每次删除完,总是有剩余,也就是删不干净,于是我进行了调试,发现当有3个元素时删除完还剩1个,4个元素剩2个…

一段C++代码想到的问题

今天在学习<Unix环境高级编程>,第七章进程环境给出了一个进程的内存分布示意图,从下往上依次为“正文段->初始化数据->未初始化数据(默认初始化为0)->堆(从低地址到高地址)->栈(从高地址到低地址)->命令行参数和环境变量”.其中的正文段也叫代码段,是可共享的,只读的. 这个时候我就想到上次做的腾讯的一个题目,其实很简单,大概意思如下所示代码所示.大概意思是,先创建了一个类的对象a,再将a内存清0,然后直接调用两个的一个是虚函数一个是非虚函数,看看能否正确访

简单代码在ABAP中实现声音的播放

这段代码的功能是在SAP里面实现声音的播放,可以用作程序提醒功能,和SAP里面’噹噹噹’那个声音的意思差不多.将来在项目中遇到客户想要SAP ABAP发出一点声音的时候就可以参考一下这个程序. REPORT zplay.DATA: command TYPE string. *本地命令语句CONCATENATE ‘vbscript:execute(”document.write ””<bgsound src=’”‘file:///”+Replace(”C:\lg\Bad Romance.mp3“,

(转)Linux下数据段的区别(数据段、代码段、堆栈段、BSS段)

进程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等.不过进程对这些内存的管理方式因内存用途 不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的.对任何一个普通进程来讲,它都会涉及到5种不同的数据段. Linux进程的五个段 下面我们来简单归纳一下进程对应的内存空间中所包含的5种不同的数据区都是干什么的. BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BS

一段简单的汇编程序

.section .data < initialized data here > .section .bss < uninitialized data here > .section .text .global _start _start: < instruction code > 如上述代码所示,汇编程序通常包含3个段(section): data section bss section text section GNU assembler使用.section语句来声