PHP5面向对象中抽象类和抽象方法的应用
2010-10-14 10:42
309 查看
1,抽象类,接口,多态之间的关系。
a,抽象类是一种特殊的类,接口是一种特殊的抽象类。多态就要使用到接口或者抽象类。
2,抽象类的定义
a,什么是抽象方法?----->如果一个类中的方法没有方法体(没有实现的方法---没有大括号,直接以分号“;”结束),就是抽象方法,如--------->abstract function hello();。
如果一个方法是抽象方法,必须使用关键字abstract修饰!
b,什么是抽象类?如果一个类中有一个(多个)方法是抽象方法,则这个类就是抽象类。需要使用abstract关键字修饰。
如:abstract class test{
abstract function hello();
function say(){
echo "你好";
}
}
抽象类中必须存在一个抽象方法!同时抽象类中可以有其他的非抽象方法,属性,常量等。
不能对抽象类进行实例化!
要想使用抽象类,就必须使用一个类去继承抽象类。而且要想使用这个子类,必须对父类的抽象方法进行重载。
c,为什么使用抽象方法(总结)?
作用:定义一些规范,让子类去实现自己的功能。
将自己写的程序模块加载到已经写好的程序中去。(假如你开发一个程序模块,同时你需要调用同事写的一些方法、类等,你总不能等待同事开发好以后,再继续自己的工作。所以,在自己的程序里面定义好一个抽象类(就和定制了规范一样),让同事去根据你定制好的规范,写一些继承的子类、方法重载等,实际上你提供了接口,同时提供了实现,你又实现了调用执行。工作可以异步进行,同时程序在后期可以进行良好的拓展。)
d,抽象类(规范)的定义中需要注意:
这个抽象类中的非抽象属性、方法是公有的。是具有相同特征的子类需要共有继承的。
其中多个子类需要实现的差异化功能(重写父类中的抽象方法)需要在父类中做抽象方法(即规范,或者是“接口”)。
a,抽象类是一种特殊的类,接口是一种特殊的抽象类。多态就要使用到接口或者抽象类。
2,抽象类的定义
a,什么是抽象方法?----->如果一个类中的方法没有方法体(没有实现的方法---没有大括号,直接以分号“;”结束),就是抽象方法,如--------->abstract function hello();。
如果一个方法是抽象方法,必须使用关键字abstract修饰!
b,什么是抽象类?如果一个类中有一个(多个)方法是抽象方法,则这个类就是抽象类。需要使用abstract关键字修饰。
如:abstract class test{
abstract function hello();
function say(){
echo "你好";
}
}
抽象类中必须存在一个抽象方法!同时抽象类中可以有其他的非抽象方法,属性,常量等。
不能对抽象类进行实例化!
要想使用抽象类,就必须使用一个类去继承抽象类。而且要想使用这个子类,必须对父类的抽象方法进行重载。
c,为什么使用抽象方法(总结)?
作用:定义一些规范,让子类去实现自己的功能。
将自己写的程序模块加载到已经写好的程序中去。(假如你开发一个程序模块,同时你需要调用同事写的一些方法、类等,你总不能等待同事开发好以后,再继续自己的工作。所以,在自己的程序里面定义好一个抽象类(就和定制了规范一样),让同事去根据你定制好的规范,写一些继承的子类、方法重载等,实际上你提供了接口,同时提供了实现,你又实现了调用执行。工作可以异步进行,同时程序在后期可以进行良好的拓展。)
d,抽象类(规范)的定义中需要注意:
这个抽象类中的非抽象属性、方法是公有的。是具有相同特征的子类需要共有继承的。
其中多个子类需要实现的差异化功能(重写父类中的抽象方法)需要在父类中做抽象方法(即规范,或者是“接口”)。
相关文章推荐
- JAVA笔记六(21-24 对象转型(多态性)、面向对象应用、抽象类和抽象函数)
- 面向对象高级——instanceof关键字的使用以及抽象类与接口的应用
- Java面向对象-抽象方法和抽象类
- PHP面向对象基础概念(抽象方法和抽象类)
- 面向对象,类的组合关系,继承,实现,方法重写,方法重载,this的使用,抽象方法和抽象类的比较,父类构造方法存在的意义,多态的是用和解析,各种访问修饰符
- java 面向对象抽象类的应用
- Java面向对象高级--抽象类与接口的应用
- kotlin基础4---面向对象抽象类和抽象方法
- php面向对象全攻略 (十二) 抽象方法和抽象类
- PHP5的对象模型[10]--抽象方法和抽象类
- php面向对象全攻略 (十二) 抽象方法和抽象类
- 面向对象高级续2(instanceof关键字、抽象类和接口的应用、Object类、包装类)
- 面向对象第十六课,抽象类,抽象方法
- [.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用
- 面向对象:组合、抽象类
- php5面向对象入门 (一)
- [连载]基于消息驱动的面向对象通用C/S应用框架(三)
- [连载]基于消息驱动的面向对象通用C/S应用框架(十一)
- 基于消息驱动的面向对象通用C/S应用框架(八)
- Java面向对象之抽象类,接口