我们在类上面定义但没有提及的方法是具体的技术。 所谓无方法体是指没有大括号和声明中的内容,而是在声明的时候直接在方法名后面加一个分号,在声明抽象方法的时候在方法上加一个key字样进行修改“抽象的”。
例如:
抽象函数 fun1();
抽象函数 fun2();
2.什么是抽象类?
只要类上的方法是具体方法,那么这个类就被定义为抽象类,并且抽象类也必须用“abstract”关键字修饰; 抽象类可以有不具体的方法和成员属性,但只要有一个方法是具体的,就必须将该类声明为抽象类,并用“abstract”修饰。
例如:
抽象类演示{
var $测试;
抽象函数 fun1();
抽象函数 fun2();
3、抽象类的作用是什么?
在上面的反例中,定义了一个抽象类“demo”,并用“abstract”修饰。 在这个类中,定义了一个成员属性“$test”,定义了两个具体方法“fun1”和“fun2”以及一个非具体方法。 方式 fun3(); 那么我们如何使用抽象类呢? 最重要的一点是抽象类不能形成实例对象,因此不能直接使用。 我们已经多次提到,类不能直接使用。 我们使用的是通过类实例化的对象,因此抽象类不能形成实例对象。 声明抽象类有什么用? 我们使用抽象方法作为泛型重载的模板。 定义抽象类相当于定义规范。 该规范要求泛型违反它。 子类继承了具体类后,抽象类就按照泛型的需要来实现具体的方式。 子类必须实现父类中的所有具体方法,否则泛型中仍然有具体方法,因此泛型仍然是抽象类php 抽象方法,无法实例化; 为什么我们必须继承抽象类? 因为有时候我们想要实现一些功能php 抽象方法,就必须继承抽象类,否则就无法实现这些功能。 如果继承抽象类,则必须在类中实现具体方法;
例如:
抽象类模式{
var $测试;
抽象函数 fun1();
抽象函数 fun2();
函数 fun2(){
....
$模式=新模式(); //抽象类只能形成实例对象,所以这样做是错误的,实例化对象为泛型
类测试扩展模式{
函数 fun1(){
....
函数 fun2(){
....
$测试=新测试(); //子类可以实例化对象,因为它们实现了所有父类的抽象方法
发表评论