第十节摘要法和抽象类10

第十节摘要法和抽象类10
通过类的层次结构建立面向对象程序。在PHP这样的单一继承语言中,是继承树。根类有一个或多个子类别,从每个子类继承一个或多个低级子类。当然,也可以有多个根类,来实现不同的功能。在设计良好的系统中,每个根类都应该有一个有用的接口,可以由应用程序代码使用。如果我们的代码的应用程序设计为与根类一起工作,那么它也可以与从根类继承的任何一个进行合作。子类。

抽象方法是一种一般的方法,作为占位符中的子类(占地方不工作),它与一般方法不同没有任何代码。如果类有一个或多个抽象方法,则该类成为抽象类。不能实例化抽象类。您必须继承它们,然后实例化子类。您也可以将抽象类作为模板的子类。

如果重写所有抽象方法,子类将变成一个普通类。如果没有重写所有方法,子类仍然是抽象的。如果一个类包含抽象方法(甚至只有一个),则必须声明这个类是抽象的、抽象的。在类关键字前加

不同的语法和方法声明方法的一般语句。抽象方法不包含在一般的方法,在用形象的主要部分,并用分号来结束。

在例子6.13中,我们定义了一个类的形状。含有getArea方法而是因为他们不知道它的形状是不可能确定图形的面积,确良我们声明为抽象方法getArea方法。您不能实例化一个形状对象,但您可以继承它,或者在表达式中使用它。如示例6.13。

如果只构建类的抽象方法,则可以定义接口(接口)。为了说明这一点,接口和实现关键字PHP。可以使用接口来替换抽象类,使用工具而不是扩展来说明类定义或使用接口。例如,你可以写一个MyClass实现myiterface。这两种方法可以根据个人喜好进行选择。

附注:
两种手段:
1。抽象类AAA(注意AAA中只有抽象方法,没有一般方法)
BBB级延伸AAA {}(覆盖在AAA BBB抽象方法)
2。接口AAA { }
Class BBB implements aaa{} (overwriting an abstract method in AAA in BBB)
* /

清单6.13抽象类

抽象根类抽象根类
抽象类
{
抽象函数GetArea();文件: / /定义一个抽象方法
}

抽象子类抽象子类
抽象类多边形扩展形状文件:多边形
{
摘要getnumberofsides()函数;
}

具体类实体类三角形类
类三角形延伸多边形
{
公共基础;
公共高度;

公共函数GetArea()文件: / /覆盖面积计算方法
{
返回((($)…))2;
}

覆盖公共功能getnumberofsides边数的统计方法()文件: / /
{
返回(3);
}
}

具体的类实体类
类矩形扩展多边形
{
公共宽度;
公共高度;

公共函数GetArea()
{
返回($ >宽度* $ - >高度);
}

公共功能getnumberofsides()
{
返回(4);
}
}

具体类实体类循环
类圆扩展形状
{
公共半径;

公共函数GetArea()
{
返回(pi);
}
}

具体的根类定义了一个颜色类。
类的颜色
{
公开名称;
}

我的收藏美元=阵列();文件: / /建立一套形状放在一个数组

创建一个矩形
新矩形;
$ =宽度= 5;
$ =高度= 7;
我的收藏美元{ } = r;
unset(r);

创建三角形
新三角形;
$ =基础= 4;
$ =高度= 5;
我的收藏美元{ } = $ T;
设置(T);

创建一个圆
新圆;
$ =半径= 3;
我的收藏{ } = $ C $;
unset($ C);

创建颜色
新颜色;
$name蓝色;
我的收藏{ } = $ C $;
unset($ C);

foreach(合我的美元)
{
如果(合的是形状)文件: / /如果的是形状类的一个实例
{
打印()区域:。$ S -> GetArea()。


}

如果($ S是多边形)
{
打印(边:)。
$ S -> getnumberofsides()。


}

如果(合的是颜色)
{
打印(颜色

}

打印()

}

>

tag:抽象类摘要电脑软件

相关内容